Implementation - simsolden/jsProject GitHub Wiki
Le backend caviste/api distribue un service Web qui fournit les données à l'application cliente au format JSON ou XML.
Cette API REST répond aux commandes suivantes :
URL | Method | Action |
---|---|---|
GET | /api/wines | Retrouve les vins de la base de données |
GET | /api/wines/10 | Retrouve le vin dont l'id == 10 |
GET | /api/wines?key=country&val=France&sort=year | Filtre les vins de France triés par année |
GET | /api/wines/search?keyword=Chateau | Recherche les vins dont le nom contient ‘Chateau’ |
GET | /api/wines/10/comments | Retrouve les commentaires du vin 10 |
GET | /api/wines/countries | Retrouve les différents pays |
GET | /api/wines/10/likes-count | Retrouve le nombre de likes du vin 10 |
GET | /api/users/5/likes/wines | Retrouve les vins préférés de l’utilisateur 5 |
PUT | /api/wines/10/like { "like" : true | false } |
POST | /api/wines/10/comments { "content" : "some content" } | Ajoute un commentaire pour le vin 10 |
PUT | /api/wines/10/comments/3 { "content" : "some new content" } | Modifie le commentaire 3 du vin 10 |
DELETE | /api/wines/10/comments/3 | Supprime le commentaire 3 du vin 10 |
POST | /api/wines/10/pictures FormData | Ajoute une image pour le vin 10 |
DELETE | /api/wines/10/pictures/2 | Supprime l’image 2 du vin 10 |
GET | /api/wines/10/pictures Authorization | Récupère les images supplémentaires pour le vin 10 (de 0 à 3 images stockées dans le dossier uploads) |
Méthode GET
Lancez ce code dans la console ou depuis un site client sous http://localhost:80
fetch('https://cruth.phpnet.org/epfc/caviste/public/index.php/api/wines')
.then(response => response.json())
.then(json => console.log(json))
Exemple de méthode PUT
Lancez ce code dans la console ou depuis un site client sous http://localhost:80
const wineId = 10; //Try with other id value
const apiURL = 'https://cruth.phpnet.org/epfc/caviste/public/index.php/api';
const options = {
'method': 'PUT',
'body': { "like" : true }, //Try with true or false
'mode': 'cors',
'headers': {
'content-type': 'application/json; charset=utf-8',
'Authorization': 'Basic '+btoa('ced:123') //Try with other credentials (login:password)
}
};
const fetchURL = '/wines/'+wineId+'/like';
fetch(apiURL + fetchURL, options).then(function(response) {
if(response.ok) {
response.json().then(function(data){
console.log(data);
});
}
});
Resources
Pour l'instant, quatre ressources sont disponible:
/wines 13 wines
/comments ~ comments
/users ~ users
Liste complète des utilisateurs (implémenté)
- (1, 'rachida'),
- (2, 'youssef'),
- (3, 'simon'),
- (4, 'angeline'),
- (5, 'myriam'),
- (6, 'ced'),
Liste complète des utilisateurs (non implémenté)
- (1, 'ced'),
- (2, 'bob'),
- (3, 'radad'),
- (4, 'adam'),
- (5, 'alain'),
- (6, 'amin'),
- (7, 'amine'),
- (8, 'angeline'),
- (9, 'badreddine'),
- (10, 'belkacem'),
- (11, 'gregory'),
- (12, 'ismail'),
- (13, 'appolinaire'),
- (14, 'kwasi'),
- (15, 'manuel'),
- (16, 'maxime'),
- (17, 'myriam'),
- (18, 'nathalie'),
- (19, 'mamadou'),
- (20, 'rachida'),
- (21, 'simon'),
- (22, 'thomas'),
- (23, 'youssef'),
- (24, 'nathan')