Skip to content
This repository has been archived by the owner on May 26, 2018. It is now read-only.

Commit

Permalink
Update restapi.md
Browse files Browse the repository at this point in the history
  • Loading branch information
Olivier Gueudelot committed May 9, 2017
1 parent 95c4d5e commit c9d50f3
Showing 1 changed file with 11 additions and 2 deletions.
13 changes: 11 additions & 2 deletions docs/en/dev/restapi.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,8 @@ Pour connaître les détails concernant les resources et fonctionnalités de Reg

Principaux points d'entrée
==========================
Les points d'entrée principaux de l'API sont les suivants :<br/>
Les points d'entrée principaux de l'API sont les suivants :

* [`/users`]() : pour la manipulation des utilisateurs de Regovar
* [`/projects`]() : pour la manipulation des projets de Regovar
* _... à venir ..._
Expand Down Expand Up @@ -46,6 +47,7 @@ Donc en théorie, quand tout fonctionne normalement, le server doit toujours ren
La structure de la réponse JSON est toujours la même :

**En cas de succès** du traitement de la requête

```javascript=
HTTP code = 200
{
Expand All @@ -63,6 +65,7 @@ HTTP code = 200


**En cas d'erreur** (gérée) lors du traitement de la requête

```javascript=
HTTP code = 200
{
Expand All @@ -82,6 +85,7 @@ Par défaut une requête va retourner les ressources avec un certain nombre de c
Pour les requêtes qui supportent le lazy loading (par exemple `/users` qui retourne la liste des utilisateurs), il est possible de spécifier quels champs à retourner dans la réponse.

**Query Parameter** : `?fields={fieldname}[,{fieldname2},...]`

```javascript=
Exemple :
Expand Down Expand Up @@ -117,6 +121,7 @@ Pagination
Pour les requêtes qui la supportent (par exemple `/users`), il est possible de spécifier la plage de résultat à retourner.

**Query Parameter** : `?range={first}-{end}`

* Retourne la liste des résultat allant du `{first}` au `{end}` inclus (à noter que le premier élément à pour index 0).

```javascript=
Expand Down Expand Up @@ -144,6 +149,7 @@ Filtrage
Pour les requêtes qui le supportent (par exemple `/users`), il est possible de spécifier des paramètres de filtrage pour ne retourner qu'une certaine partie des résultats.

**Query Parameter** : `?{fieldname}={value}[,{or_value},...][&{fieldname2...}]`

* On peut filtrer en précisant en paramètre un champs de la ressource et la valeur attendue. La liste des champs filtrables est fournie par la requête principale sans aucun argument (dans notre exemple la requête `/users`). Seuls les attributs directs de la ressource peuvent être filtrés.;
* On peut filtrer sur plusieurs champs à la fois en les séparant avec le `&`. Dans ce cas le moteur de filtrage appliquera implicement la condition `AND` entre chaque champs filtré;
* On peut filtrer sur plusieurs valeurs pour un même champs, en les séparant avec le symble `,`. Pour le moteur de filtrage il s'agira d'appliquer un `OR` pour chacune de ces valeurs;
Expand Down Expand Up @@ -189,8 +195,10 @@ Ordonner
Pour les requêtes qui le supportent (par exemple `/users`), il est possible de spécifier des paramètres pour ordonner les résultats selon certains champs par ordre croissant ou décroissant.

**Query Parameter** : `?sort={field1}[,{field2},...][&desc={fieldX}[,{fieldY}]]`

* L'attribut `sort` permet de lister les champs dans l'ordre suivant lequel les résultats vont être ordonnés (par ordre croissant pour chaque champs);
* L'attribut `desc` liste les champs (parmis ceux avec l'attributs sort qui doivent suivrent l'ordre décroissant et non croissant)

```javascript=
Exemple :
Expand All @@ -205,7 +213,7 @@ GET regovar.org/users?sort=lastname,firstname&desc=lastname

Search
------
*à définir ...*
_... à définir ..._



Expand All @@ -216,5 +224,6 @@ Search
Identification et authentification
==================================
Qui dit internet, dit authentification des utilisateurs à distance, session et mot de passe. Tout cela est géré via le point d'entrée [`/users`](), grâce aux actions :

* **`POST`**`/users/login` : qui permet l'authentification grâce aux paramètres `login` et `password` à fournir dans le corps de la requête. Si l'authentification échoue, une erreur 403 est retournée (Forbidden); si elle réussit,
* **`GET`**`/users/logout` :

0 comments on commit c9d50f3

Please sign in to comment.