API REST
Voici la liste complète des services qu'offre l'API REST de l'application JdnApp.
localisation de l'API
L'api se situe à l'adresse api/laravel/public/v1/
Service Categories
Les Categories correspondent aux différentes années à l'école (promo L1, promo L2, ... promo 2014).
voici les requêtes http pour récuperer/modifier une ou plusieurs Categories.
| URI | Méthode | action | Paramètre | Retour |
|---|---|---|---|---|
| /categorie | GET | Récupère toutes les catégories | json | |
| /categorie | POST | Ajoute une catégorie | title, isInternal | json |
| /categorie/{id} | GET | Récupère la catégorie {id} | json | |
| /categorie/{id} | PUT | Modifie la catégorie {id} | title, isInternal | json |
| /categorie/{id}/guest | GET | Récupère les guests de la catégorie {id} | json | |
| /categorie/{id} | DELETE | Supprime la catégorie {id} | json |
Exemple de retour json :
GET api/laravel/public/v1/categorie/1
{"error":false,"categorie":[{"id":1,"title":"test","isInternal":0}]}
PUT api/laravel/public/v1/categorie/1?isInternal=sqdq
{"error":true,"messages":{"isInternal":["validation.boolean"]}}
Service Tables
Les Tables correspondent aux tables pour faciliter la création du plan de table.
voici les requêtes http pour récupérer/modifier une ou plusieurs Tables.
| URI | Méthode | Action | Paramètre | Retour |
|---|---|---|---|---|
| /table | GET | Récupère tous les tables | json | |
| /table | POST | Ajoute une table | title, max_chairs, is_Full | json |
| /table/{id] | GET | Rècupère le table {id} | json | |
| /table/{id} | PUT | Modifie la table {id} | title, max_chairs, is_Full | json |
| /table/{id] | DELETE | Supprime la table {id} | json |
Service Guests
Les Guests correspondent aux invités qui se sont inscrit pour la jdn.
voici les requêtes http pour récupérer/modifier un ou plusieurs Guests.
| URI | Méthode | Action | Paramètre | Retour |
|---|---|---|---|---|
| /guest | GET | Récupère tous les guests | json | |
| /guest | POST | Ajoute un guest | firstname, lastname, email, isPaid, isSpecial, categorie_id, table_id | json |
| /guest/{id] | GET | Rècupère le guest {id} | json | |
| /guest/{id} | PUT | Modifie le guest {id} | firstname, lastname, email, isPaid, isSpecial, categorie_id, table_id | json |
| /guest/{id] | DELETE | Supprime le guest {id} | json |
Authentification
L'API utilise la méthode Basic Auth pour gérer les utilisateurs qui y ont accés. L'utilisateur de l'API a un rôle api.
Les utilisateurs sont enregistrés dans la base de données et peuvent être géré depuis le panel Admin. Les utilisateurs par défaut sont indiqués à la page Sécurité.
Il est conseillé de changer le mot de passe par defaut des utilisateurs après la mise en ligne de l'application.
Sécurité
Il se trouve que toutes les actions ne sont pas possible pour des raisons de sécurités. En effet, il n'est pas possible de supprimer une catégorie ou un guest depuis l'API, on doit passer par le panel Admin.
Mais on peut choisir ce qu'on souhaite avoir comme action via le fichier routes.php qui se trouve dans le dossier api/laravel/app :
/* Groupe de routes pour le versioning d'API */
Route::group(array('prefix' => 'v1', 'before' => 'auth.basic'), function()
{
Route::resource('categorie', 'CategorieController', array('only' => array('index', 'show', 'showGuest')));
Route::get("categorie/{id}/guest", array("uses" => "CategorieController@showGuest"));
Route::resource('table', 'TableController', array('only' => array('index', 'show', 'showGuest')));
Route::get("table/{id}/guest", array("uses" => "TableController@showGuest"));
Route::resource('guest', 'GuestController', array('only' => array('index', 'show', 'store')));
});
Grâce au paramètre only on peut définir un tableau avec les actions voulues.