Le langage utilisé pour la creation de cette api est Python3. Nous avons utilisé le framework open-source python Flask.
L'API comporte 10 requêtes : 6 POST, 3 GET et 1 DELETE
Vous pouvez accéder à toutes ces requêtes dans Postman en important la collection associée à ce lien : https://www.getpostman.com/collections/6e9b4d5e32d2c0c00fbe
Attention, les requêtes de cette collection sont prévues pour fonctionner en local sur le port 5000. Pour lancer le serveur en mode dévelopemment et sur le port 5000, exécutez le fichier run_dev.sh du dossier serverapi.
Tous les retours sont un json :
[{ "code": "200", "data": [ "msg": "Succes" ] }]
POST : http://127.0.0.1:5000/api/users
http://127.0.0.1:5000 URL /api/users route
Dans le body :
{"username":"Florian", "password":"zefqldkqk", "email":"florian.bord@epitech.eu"}
Trois retours possibles:
- 404 en cas d'erreur, avec un message spécifique
- 200 pour ok
POST : http://127.0.0.1:5000/api/login
http://127.0.0.1:5000/ URL api/login/ route
Dans le body :
{"username":"florianles@oui.crom", "password":"zefqldkqk"}
Le token est retourné dans data avec la clé token.
Deux retours possibles:
- 200 pour ok.
- 401 si l'utilisateur n'existe pas.
- 404 en cas d'erreur.
POST : http://127.0.0.1:5000/service
http://127.0.0.1:5000/ URL service/ route
Dans le header : 'Authorization : token' exemple : 'Authorization : EQ4b60fb_AuewuYCpK6SPA'
Dans le body : {"action":"Nom de l'action", "action_data":"argument de l'action", "reaction":"Nom de la reaction", "reaction_data":"argument de la reaction", "name":"Nom donné au service"}
Deux retours possibles:
- 200 si tout s'est bien passé
- 401 si la connexion a echoué (mauvais username password)
- 404 en cas d'erreur
DELETE : http://127.0.0.1:5000/service
http://127.0.0.1:5000/ URL service/ route
Dans le header : 'Authorization : token' exemple : 'Authorization : EQ4b60fb_AuewuYCpK6SPA'
Dans le body : {"name": "Service1"}
Trois retours possibles:
- 200 pour ok
- 404 si le service n'existe pas
- 401 si la connexion a echoué (mauvais username password)
GET : http://127.0.0.1:5000/service_list
http://127.0.0.1:5000/ URL service_list/ route
Dans le header : 'Authorization : $token' exemple : 'Authorization : EQ4b60fb_AuewuYCpK6SPA'
Les service sont retournés dans data sous la forme : [{"name":"SERVICE1","state":"true"}]
exemple pour 4 service nommés 'serv1', 'serv2', 'serv3', 'serv4' :
[{"name":"serv1","state":true},{"name":"serv2","state":true},{"name":"serv3","state":true},{"name":"serv4","state":true}]
Trois retours possibles:
- 200 pour ok
- 404 (pas de service pour cet utilisateur)
- 401 problème de connexion
POST : http://127.0.0.1:5000/change_state/
http://127.0.0.1:5000/ URL change_state/ route
Dans le header : 'Authorization : $token' exemple : 'Authorization : EQ4b60fb_AuewuYCpK6SPA'
Dans le body : {"name":"Nom du service"}
Trois retours possibles:
- 200 pour ok
- 404 si le service n'existe pas
- 401 si le token est mauvais
GET : http://127.0.0.1:5000/reaction_list
http://127.0.0.1:5000/ URL reaction_list/ route
Retourne la liste des actions avec leurs descriptions.
Exemple:
{"code":"200","data":{"send_mail":{"desc":"L\u2019utilisateur re\u00e7oit un mail avec le contenu qu\u2019il passe en param\u00e8tre"}}}
GET : http://127.0.0.1:5000/action_list
http://127.0.0.1:5000/ URL action_list/ route
Retourne la liste des actions avec leurs descriptions.
Exemple:
{"code":"200","data":"fb_birthday":{"desc":"Regarde si la date d\u2019anniversaire Facebook est celle d\u2019aujourd\u2019hui."}}}
POST : http://127.0.0.1:5000/add_token
http://127.0.0.1:5000/ URL add_token route
Dans le header : 'Authorization : $token' exemple : 'Authorization : EQ4b60fb_AuewuYCpK6SPA'
Dans le body : {"token":"qdqdzjdjqkfkq", "name":"facebook"}
Trois retours possibles:
- 200 pour ok
- 404 en cas d'erreur
- 401 si la connexion échoue
POST : http://127.0.0.1:5000/get_token
http://127.0.0.1:5000/ URL get_token route
Dans le header : 'Authorization : $token' exemple : 'Authorization : EQ4b60fb_AuewuYCpK6SPA'
Dans le body : {"name":"facebook"}
Retours possibles:
- 200 pour ok
- 404 en cas d'erreur
- 401 si la connexion échoue `