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')