# Documentation de l'API

## Auteur 
Quentin VREL (FISE 2021)

## Description
Le contenu de ce sous-dossier est mon rendu pour le TP 3 de l'UV CDAW. Il contient les fichiers source de l'API RESTFUL accessible à l'adresse 
```https://eden.imt-lille-douai.fr/~quentin.vrel/projet-cdaw/BackEnd/tp4/api.php```.

## Installation
Cette API est utilisable dès lors que le fichier createDB.sql a été executé dans la base de donnée à laquelle celle-ci doit être ratachée. Il conviendra ensuite de modifier les identifiants de connection à celle-ci dans le fichier /config/config.php comme suit 
```php
define('DB_HOST', <adresse hôte>);
define('DB_PORT', <port>);
define('DB_DATABASE', <nom de la table>);
define('DB_USERNAME', <identifiant>);
define('DB_PASSWORD', <mot de passe>);
```

## Fonctionnalités disponibles
Cette API permet de manipuler les informations d'une base de donnée d'utilisateurs telle que chaque utilisateur est modélisé comme suit 
```JS
{
    "USER_ID",
    "USER_LOGIN",
    "USER_EMAIL",
    "USER_ROLE",
    "USER_PWD",
    "USER_NAME",
    "USER_SURNAME"
}
```
L'API permet de consulter la liste et les informations de tous les utilisateurs, les informations d'un utilisateur dont l'identifiant en base de données est connu, et de mettre à jour l'email d'un utilisateur dont l'identifiant est connu. 
Chaque requète à l'API doit être adressée à l'adresse ```https://eden.imt-lille-douai.fr/~quentin.vrel/projet-cdaw/BackEnd/tp4/api.php<cible>```.
Lorsque des paramètres sont nécessaires au traitement de la requête, ceux-ci doivent être écris dans le corps de la requête HTTP au format JSON.
Certaines requêtes sont protégées par un token d'authentification afin de protégé la lecture et l'écriture de données sensibles.

|Fonctionnalité|Methode|Cible|Paramètres|Protégé par token|
|---|---|---|---|---|
|Obtention d'un token|POST|```/login```|'login', 'pwd'(mot de passe haché)|non|
|Liste et informations des utilisateurs|GET|```/user```||non|
|Informations d'un utilisateur|GET|```/user/<id>```||non|
|Modification de l'email d'un utilisateur|PUT|```/user```|'id', 'mail'|oui|