Skip to content

7. Documentations de l'API

Manuelle Ndamtang edited this page Dec 19, 2019 · 1 revision

Outils utilisés

Une API a été mise en place, fonctionnant autant pour l'application mobile que pour l'application web. Ici vous trouverez un brève description de chacune des fonctionnalités offertes par cet API. Vue que nos applications fonctionnent en React et React-Native, il nous parut avantageux d'utiliser NodeJs, Express avec MongoDb pour notre base de données. La possibilité de faire de l'Orienté-Objet dans la base de données, grâce à des services tels que Mongoose est l'une des raisons qui nous a poussé à faire ce choix. Pour l'instant, notre api renvoie des données sous forme JSON.

Fonctionnement de l'api

Notre api est actuellement en cours de développement. Il écoute sur le port 5000 à l’URL du site de easygame.

Avis aux disclaimers: Il est vrai qu'il n'est pas conseillé de laisser écouter l'api sur un port spécifique. Pour l'instant nous n'avons pas de solutions alternatives. Comme dit précédemment, notre api est en cours de développement. Donc vous allez devoir vous contenter de ceci.

Si on revient sur ce qui a été dit avant, pour appeler notre api il faudra utiliser la syntaxe suivante:

http:easygame.funndeh.com:5000/api/ + REQUEST 

avec REQUEST la requête qu'on désire.

Requête possibles

Pour le modèle Utilisateur

users / (racine)

Il est possible de lister tous les utilisateurs existants dans la base de données grâce à l'URL avec une requête de type GET

http:easygame.funndeh.com:5000/api/users

Vous obtiendrez un array contenant des objets représentant tous les utilisateurs issus de la base de données avec toutes leurs coordonnées. Cet api est intéressante pour la partie gestion.

login

il est également possible de se loger à l'application avec une requête de type POST avec comme des données en paramètre sous ce format:

{
   email: userMail,
   motDePasse: userPassword
}

Evidemment, l'URL de notre api dans ce cas sera:

http:easygame.funndeh.com:5000/api/users/login

Comme réponse, vous allez obtenir un objet ayant uniquement une clé message et son attribut en cas d'erreurs, et une objet avec deux clés: message et token en cas de réussite.

register

Pour enregister un utilisateur dans la base de données, nous avons besoin d'une requête de type POST avec comme paramètre des données de cette forme:

{
  nom : userNom,
  prenom : userPrenom,
  email : userEmail,
  motDePasse : userMotDePasse,
  dateNaissance : userDateNaissance,
  fonction : userFonction,
  idAnimateur: userIdAnimateur //Email de l'animateur
}

Une chose intéressante à souligner dans nos applications, est que seuls les animateurs ont droit à la création d'un compte. Comme réponse vous obtiendrez un objet constitué d'une clé, message informant si oui ou non le nouveau utilisateur a été enregistré. Une autre chose à préciser est que les adresses emails des utilisateurs doivent être uniques dans la base de données. C'est sur elle qu'on se base le plus pour identifier un utilisateur. Les mots de passe ne doivent pas avoir une longueur de moins de 8 caractères.

:id (POST)

Chaque utilisateur est caractérisé par un id qui lui est propre et qui est générée de manière automatique. Une api a été mise an place pour les requêtes consistant à avoir les données de l'utilisateur ne connaissant que son id. Ainsi une requête de type POST avec pour données, l'id de l'utilisateur est possible par la syntaxe:

http:easygame.funndeh.com:5000/api/users/userId

Sur base du token obtenu en login, il est possible d'obtenir l'id de l'utilisateur. Vous obtiendrez un objet contenant toutes les coordonnées correspondant au profil de l'utilisateur(clés possible: __id, nom, prenom, nomUtilisateur...).

:id (DELETE)

Nous pouvons supprimer un utilisateur de manière totale de la base de données à travers une requête de type DELETE

http:easygame.funndeh.com:5000/api/users/userId

avec userId comme l'id de l'utilisateur.

Modèle Devices

devices / (racine)

Cette requête de type GET permettant de lister tous les divices ainsi que leurs propriétaires.

http:easygame.funndeh.com:5000/api/devices

add

Cette requête de type POST permet d'ajouter un device et de l'attribuer à un animateur. La syntaxe est la suivante:

http:easygame.funndeh.com:5000/api/devices/add

Avec les données en paramètres de cette forme:

{
   nom: deviceNom,
   proprietaire : userEmail // attention de l'animateur
}

getDevices

Pour recevoir une liste de tous les devices appartenant à un animateur, on devra faire une requête de type GET, dont la syntaxe est la suivante:

http:easygame.funndeh.com:5000/api/devices/getDevices

avec comme paramètre le mail de l'animateur:

{
  proprietaire: mailAnimateur
}

Modèle Positions

positions / (racine)

Pour visiter toutes les données enregistrées dans la base de données, une requête de type GET vers le lien.

http:easygame.funndeh.com:5000/api/positions

/add

Pour ajouter une position GPS, on va devoir l'encoder à travers une requête de type POST.