Commit 44702c15 authored by quentin.vrel's avatar quentin.vrel

MAJ des readme de tp3 et 4 et des autoloaders

parent 01625f20
# 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/tp3/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/tp3/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.
|Fonctionnalité|Methode|Cible|Paramètres|
|---|---|---|---|
|Liste et informations des utilisateurs|GET|```/user```||
|Informations d'un utilisateur|GET|```/user/<id>```||
|Modification de l'email d'un utilisateur|PUT|```/user```|id, mail|
\ No newline at end of file
...@@ -10,22 +10,19 @@ class AutoLoader { ...@@ -10,22 +10,19 @@ class AutoLoader {
// This method will be automatically executed by PHP whenever it encounters an unknown class name in the source code // This method will be automatically executed by PHP whenever it encounters an unknown class name in the source code
private function load($className) { private function load($className) {
$_model=["Model", "Role", "User"]; if(in_array($className.'.class.php', scandir("model"))){
$_classes=["DatabasePDO", "Dispatcher", "Request", "Response"];
$_controller=["Controller", "DefaultController", "UserController"];
if(in_array($className, $_model)){
require_once "model/$className.class.php"; require_once "model/$className.class.php";
if (is_readable("sql/$className.sql.php")) if (is_readable("sql/$className.sql.php"))
require_once "sql/$className.sql.php"; require_once "sql/$className.sql.php";
} }
if (in_array($className, $_classes)) if (in_array($className.'.class.php', scandir("classes")))
require_once "classes/$className.class.php"; require_once "classes/$className.class.php";
if (in_array($className, $_controller)) if (in_array($className.'.class.php', scandir("controller")))
require_once "controller/$className.class.php"; require_once "controller/$className.class.php";
// TODO : compute path of the file to load (cf. PHP function is_readable) // TODO : compute path of the file to load (cf. PHP function is_readable)
// it is in one of these subdirectory '/classes/', '/model/', '/controller/' // it is in one of these subdirectory '/classes/', '/model/', '/controller/'
// if it is a model, load its sql queries file too in sql/ directory // if it is a model, load its sql queries file too in sql/ directory
......
# 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|
\ No newline at end of file
...@@ -10,22 +10,19 @@ class AutoLoader { ...@@ -10,22 +10,19 @@ class AutoLoader {
// This method will be automatically executed by PHP whenever it encounters an unknown class name in the source code // This method will be automatically executed by PHP whenever it encounters an unknown class name in the source code
private function load($className) { private function load($className) {
$_model=["Model", "Role", "User"]; if(in_array($className.'.class.php', scandir("model"))){
$_classes=["DatabasePDO", "Dispatcher", "Request", "Response"];
$_controller=["Controller", "DefaultController", "UserController", "LoginController", "ValidateTokenController"];
if(in_array($className, $_model)){
require_once "model/$className.class.php"; require_once "model/$className.class.php";
if (is_readable("sql/$className.sql.php")) if (is_readable("sql/$className.sql.php"))
require_once "sql/$className.sql.php"; require_once "sql/$className.sql.php";
} }
if (in_array($className, $_classes)) if (in_array($className.'.class.php', scandir("classes")))
require_once "classes/$className.class.php"; require_once "classes/$className.class.php";
if (in_array($className, $_controller)) if (in_array($className.'.class.php', scandir("controller")))
require_once "controller/$className.class.php"; require_once "controller/$className.class.php";
// TODO : compute path of the file to load (cf. PHP function is_readable) // TODO : compute path of the file to load (cf. PHP function is_readable)
// it is in one of these subdirectory '/classes/', '/model/', '/controller/' // it is in one of these subdirectory '/classes/', '/model/', '/controller/'
// if it is a model, load its sql queries file too in sql/ directory // if it is a model, load its sql queries file too in sql/ directory
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment