Table des matières

Service Rest

Open database API

-- Connexion

Base URL : user/

URL Méthode Paramètres Rôle Réponses possibles
check GET Vérifie qu'un utilisateur est connecté
{token : ddd34...,connected: true}
{connected: false}
connect POST mail, password Effectue la connection avec les paramètres postés
{token : ddd34...,connected: true}
{connected: false}
disconnect GET Déconnecte (ferme la session) de l'utilisateur actif
{connected: false}
exists/:mail GET Vérifie que l'email existe dans la base de données
{exists: true ,mail: "admin@local.fr"}
{exists: false ,mail: "jcheron@local.fr"}
add POST mail, password Ajoute l'utilisateur avec les paramètres postés
{token : ddd34...,inserted: true}
{inserted: false}
check/:mail/:password GET Pour tests : effectue une connexion avec les paramètres passé
{token : ddd34...,connected: true}
{connected: false}

Exemple de connection avec Angular :


data.posted={"mail":"admin@local.fr","password":"0000"};
this.connect(data,function(d){console.log("Connexion réussie, token : "+d.token)});

this.connect=function(response,callBack){
	var request = $http({
	    method: "POST",
	    url: restConfig.server.restServerUrl+"user/connect",
		    data: $.param(response.posted),
		    headers: self.headers
		});
		request.success(function(data, status, headers, config) {
			callback(data);//Connexion réussie
		}).error(function(data, status, headers, config){
			self.addMessage({type: "warning", content:"Erreur de connexion au serveur, statut de la réponse : "+status+"<br>"+data.message});
		});
}

Conserver la session (PHP) avec Angular :

Il suffit de décommenter la ligne withCredentials = true dans le fichier js/config.js
module.exports=function($routeProvider,$locationProvider,$httpProvider) {
	//$httpProvider.defaults.useXDomain = true;
	$httpProvider.defaults.withCredentials = true;

-- Brasseurs

-- Liste des brasseurs

URL Méthode Paramètres Rôle
/breweries GET Retourne tous les brasseurs

Exemple de réponse :

URL : /breweries

[
    {
        "id":"1",
        "name":"Anchor",
        "url":"http:\/\/www.anchorbrewing.com\/",
        "photo":"",
        "thumbnail":"",
        "created_at":"2015-03-06 19:11:39",
        "updated_at":"2015-03-06 21:53:12"
    },
    {
        "id":"6",
        "name":"Dogfish Head",
        "url":"http:\/\/www.dogfish.com\/",
        "photo":"",
        "thumbnail":"",
        "created_at":"2015-03-07 02:19:22",
        "updated_at":"2015-03-07 02:19:22"
    },
    ...
]

Erreurs possibles :

Code Raison Réponse
404 Aucune brasserie trouvée dans la BDD
{code:404, message: "Aucune brasserie trouvée."}

-- Brasseur correspondant à un id

URL Méthode Paramètres Rôle
/breweries/:id GET Retourne le brasseur dont l'id est passé en paramètre

Exemple de réponse :

URL : /breweries/7

{
    "id":"7",
    "name":"Stone Brewing Co.",
    "url":"http:\/\/www.stonebrew.com\/",
    "photo":"",
    "thumbnail":"",
    "created_at":"2015-03-07 02:19:22",
    "updated_at":"2015-03-07 02:19:22"
}

Erreurs possibles :

Code Raison Réponse
404 Aucune brasserie trouvée dans la BDD correspondant à l'id passé en paramètre
{"message":"Ooops! Le brasseur 7 est introuvable","code":404}

-- ajout d'un brasseur

URL Méthode Paramètres data Rôle
/breweries POST token
{"name":"Fischer","url":"http://www.fischer.com"}
Ajoute le brasseur posté

Exemple de réponse :

URL : /breweries
Méthode : POST

{
    "data":{
        "id":"32",
        "name":"Fischer",
        "url":"http:\/\/www.fischer.com",
        "photo":null,
        "thumbnail":null,
        "created_at":"2015-03-08 19:47:47",
        "updated_at":"2015-03-08 19:47:47"
    },
    "message":{
        "type":"success",
        "content":"'Fischer' a \u00e9t\u00e9 correctement ajout\u00e9e dans les brasseries."
    }
}

Erreurs possibles :

Code Raison Réponse
401 Utilisateur non connecté (token invalide ou absent et force non utilisé)
{"message":"Vous n'avez pas les droits pour ajouter une brasserie","code":401}
409 Brasseur dont le nom existe déjà dans la base
{"message":"Impossible d'ajouter 'Fischer' dans la base de données","code":409}

-- Modification d'un brasseur

URL Méthode Paramètres data Rôle
/breweries/:id PUT token
{"name":"Fischer modifié","url":"http://www.fischer.com"}
modifie le brasseur posté

Exemple de réponse :

URL : /breweries/32
Méthode : PUT

{
    "data":{
        "id":"32",
        "name":"Fischer modifié",
        "url":"http:\/\/www.fischer.com",
        "photo":null,
        "thumbnail":null,
        "created_at":"2015-03-08 19:47:47",
        "updated_at":"2015-03-08 19:47:47"
    },
    "message":{
        "type":"success",
        "content":"'Fischer' a \u00e9t\u00e9 correctement modifi\u00e9e dans les brasseries."
    }
}

Erreurs possibles :

Code Raison Réponse
401 Utilisateur non connecté (token invalide ou absent et force non utilisé)
{"message":"Vous n'avez pas les droits pour modifier une brasserie","code":401}
404 Le brasseur n'existe plus dans la base
{"message":"Suppression : La brasserie 'Fischer' n'existe plus dans la base de données","code":409}
409 Brasseur dont le nom existe déjà dans la base
{"message":"Impossible de modifier 'Fischer' dans la base de données","code":409}

-- Suppression d'un brasseur

URL Méthode Paramètres data Rôle
/breweries/:id DELETE token supprime le brasseur dont l'id est passée dans l'URL

Exemple de réponse :

URL : /breweries/32
Méthode : DELETE

{
    "data":{
        "id":"32",
        "name":"Fischer",
        "url":"http:\/\/www.fischer.com",
        "photo":null,
        "thumbnail":null,
        "created_at":"2015-03-08 19:47:47",
        "updated_at":"2015-03-08 19:47:47"
    },
    "message":{
        "type":"success",
        "content":"'Fischer' a \u00e9t\u00e9 correctement supprim\u00e9e de l'ensemble des brasseries."
    }
}

Erreurs possibles :

Code Raison Réponse
401 Utilisateur non connecté (token invalide ou absent et force non utilisé)
{"message":"Vous n'avez pas les droits pour supprimer une brasserie","code":401}
404 Le brasseur n'existe plus dans la base
{"message":"Suppression : La brasserie 'Fischer' n'existe plus dans la base de données","code":409}
409 Brasseur ayant des bières associées
{"message":"Impossible de supprimer 'Fischer' dans la base de données","code":409}

-- Bières

-- Liste des bières

URL Méthode Paramètres Rôle
/beers GET Retourne toutes les bières

Exemple de réponse :

URL : /beers

[
    {
        "id":"1",
        "name":"Strawberry Harvest",
        "description":"Strawberry Harvest Lager is a wheat beer ...",
        "abv":"4.2",
        "photo":null,
        "created_at":"2015-03-07 00:43:23",
        "updated_at":"2015-03-07 00:43:23",
        "idBrewery":"1"
    },
    {
        "id":"2",
        "name":"Brooklyn Detonation Ale",
        "description":"For about eight years now...",
        "abv":"bda",
        "photo":null,
        "created_at":"2015-03-08 21:06:46",
        "updated_at":"2015-03-08 21:06:46",
        "idBrewery":"12"
    },
...
]

Erreurs possibles :

Code Raison Réponse
404 Aucune bière trouvée dans la BDD
{code:404, message: "Aucune bière trouvée."}

-- Bière correspondant à un id

URL Méthode Paramètres Rôle
/beers/:id GET Retourne la bière dont l'id est passé en paramètre

Exemple de réponse :

URL : /beers/1

{
    "id":"1",
    "name":"Strawberry Harvest",
    "description":"Strawberry Harvest Lager is a wheat beer ...",
    "abv":"4.2",
    "photo":null,
    "created_at":"2015-03-07 00:43:23",
    "updated_at":"2015-03-07 00:43:23",
    "idBrewery":"1"
}

Erreurs possibles :

Code Raison Réponse
404 Aucune bière trouvée dans la BDD correspondant à l'id passé en paramètre
{"message":"Ooops! La bière d'id '1' est introuvable","code":404}

-- Liste des bières d'une brasserie

URL Méthode Paramètres Rôle
/beers/brewery/:id GET Retourne les bières correspondant à la brasserie dont l'id est passé en paramètre

Exemple de réponse :

URL : /beers/brewery/12

[
    {
        "id":"2",
        "name":"Brooklyn Detonation Ale",
        "description":"For about eight years now, we've brewed...",
        "abv":"bda",
        "photo":null,
        "created_at":"2015-03-08 21:06:46",
        "updated_at":"2015-03-08 21:06:46",
        "idBrewery":"12"
    },{
        "id":"3",
        "name":"Brooklyn Ama Bruna",
        "description":"Brewed by Amarcord Brewery in the small medieval town of Apecchio, Italy...",
        "abv":"bab",
        "photo":null,
        "created_at":"2015-03-08 21:06:46",
        "updated_at":"2015-03-08 21:06:46",
        "idBrewery":"12"
    }
]

Erreurs possibles :

Code Raison Réponse
404 Aucune bière trouvée dans la BDD correspondant correspondant à la brasserie dont l'id passé en paramètre
{"message":"Ooops! La brasserie 12 ne dispose d'aucune bière","code":404}

-- ajout d'une bière

URL Méthode Paramètres data Rôle
/beers POST token
{"name":"Brooklyn Ama Bruna modif",
"description":"Brewed by Amarcord Brewery in the small medieval town of Apecchio...",
"abv":"bab"}
Ajoute la bière postée

Exemple de réponse :

URL : /beers
Méthode : POST

{
    "data":{
        "id":"3",
        "name":"Brooklyn Ama Bruna",
        "description":"Brewed by Amarcord Brewery in the small medieval town of Apecchio...",
        "abv":"bab",
        "photo":null,
        "created_at":"2015-03-08 21:06:46",
        "updated_at":"2015-03-08 21:06:46",
        "idBrewery":"12"
    },
    "message":{
        "type":"success",
        "content":"'Brooklyn Ama Bruna' a \u00e9t\u00e9 correctement ajout\u00e9e dans les bières."
    }
}

Erreurs possibles :

Code Raison Réponse
401 Utilisateur non connecté (token invalide ou absent et force non utilisé)
{"message":"Vous n'avez pas les droits pour ajouter une bière","code":401}
409 Bière dont le nom existe déjà dans la base
{"message":"Impossible d'ajouter 'Fischer' dans la base de données","code":409}

-- Modification d'une bière

URL Méthode Paramètres data Rôle
/beers/:id PUT token
{"name":"Brooklyn Ama Bruna modif",
"description":"Brewed by Amarcord Brewery in the small medieval town of Apecchio...",
"abv":"bab"}
modifie la bière postée

Exemple de réponse :

URL : /beers/3
Méthode : PUT

{
    "data":{
        "id":"3",
        "name":"Brooklyn Ama Bruna modif",
        "description":"Brewed by Amarcord Brewery in the small medieval town of Apecchio...",
        "abv":"bab",
        "photo":null,
        "created_at":"2015-03-08 21:06:46",
        "updated_at":"2015-03-08 21:06:46",
        "idBrewery":"12"
    },
    "message":{
        "type":"success",
        "content":"'Brooklyn Ama Bruna modif' a \u00e9t\u00e9 correctement modifi\u00e9e dans les brasseries."
    }
}

Erreurs possibles :

Code Raison Réponse
401 Utilisateur non connecté (token invalide ou absent et force non utilisé)
{"message":"Vous n'avez pas les droits pour modifier une bière","code":401}
404 La bière n'existe plus dans la base
{"message":"Suppression : La brasserie 'Brooklyn Ama Bruna' n'existe plus dans la base de données","code":409}
409 Bière dont le nom existe déjà dans la base
{"message":"Impossible de modifier 'Brooklyn Ama Bruna' dans la base de données","code":409}

-- Suppression d'une bière

URL Méthode Paramètres data Rôle
/beers/:id DELETE token supprime la bière dont l'id est passée dans l'URL

Exemple de réponse :

URL : /beers/3
Méthode : DELETE

{
    "data":{
        "id":"3",
        "name":"Brooklyn Ama Bruna",
        "description":"Brewed by Amarcord Brewery in the small medieval town of Apecchio...",
        "abv":"bab",
        "photo":null,
        "created_at":"2015-03-08 21:06:46",
        "updated_at":"2015-03-08 21:06:46",
        "idBrewery":"12"
    },
    "message":{
        "type":"success",
        "content":"'Brooklyn Ama Bruna' a \u00e9t\u00e9 correctement supprim\u00e9e de l'ensemble des bières."
    }
}

Erreurs possibles :

Code Raison Réponse
401 Utilisateur non connecté (token invalide ou absent et force non utilisé)
{"message":"Vous n'avez pas les droits pour supprimer une bière","code":401}
404 La bière n'existe plus dans la base
{"message":"Suppression : La bière  'Brooklyn Ama Bruna' n'existe plus dans la base de données","code":409}
409 Aucune raison…
{"message":"Impossible de supprimer 'Brooklyn Ama Bruna' dans la base de données","code":409}