2. Les contraintes de l’architecture RESTful:
• Client/Serveur:
- La séparation des responsabilités entre le client et le serveur
- Le serveur s'occupe de la gestion des règles métier et des données
- le client se concentre sur l'interface utilisateur (une interface peut être une page web, une application mobile
etc.)
- la portabilité et la scalabilité de notre application sont grandement améliorées
- Chaque composant pourra aussi évoluer séparément
- Nous pouvons imaginer un site web qui refait toute sa charte graphique sans que le code côté serveur ne soit
modifié
2
3. Les contraintes de l’architecture RESTful:
• Sans Etat (Stateless):
- La communication entre le client et le serveur doit se faire sans dépendre d'un contexte lié au serveur
- Chaque requête du client contient toutes les informations nécessaires à son traitement
- Ainsi, plusieurs instances de serveurs peuvent traiter indifféremment les requêtes de chaque client.
3
4. Méthodes et réponses du protocol HTTP:
4
• Dans une architecture REST, il faut utiliser les verbes HTTP existants plutôt que d’inclure l’opération dans l’URI de
la ressource. Ainsi, généralement pour une ressource, il y a 4 opérations possibles (CRUD) :
Créer
(create)
Afficher
(read)
Mettre à
jour
(update)
Suppri
mer
(delete)
POST GET PUT DELETE
5. Méthodes et réponses du protocol HTTP:
5
• Les réponses HTTP:
- Il est important d’avoir à l’esprit que la réponse envoyée n’est pas une ressource
- c’est la représentation d’une ressource
- une ressource peut avoir plusieurs représentations dans des formats divers : HTML, XML, CSV, JSON, etc.
- C’est au client de définir quel format de réponse il souhaite reçevoir via l’entête Accept.
- Il est possible de définir plusieurs formats.
6. Méthodes et réponses du protocol HTTP:
6
• Exemple:
-
Réponse en HTML:
GET /books
Host: mywebsite.com
Accept: text/html
Réponse en XML:
GET /books
Host: mywebsite.com
Accept: application/xml
7. Méthodes et réponses du protocol HTTP:
7
• Codes et réponses du protocol HTTP:
- Les différents codes HTTP utiles pour les API
-
Codes commençant par 1 Information Indique une réponse provisoire.
100 Continue ("Continue") Le client doit continuer avec sa requête.
Codes commençant par 2 Succès Indique que la requêtea été reçue, comprise et acceptée.
200 OK Tout va bien, tout est normal : la requête a été traitée avec succès :-)
201 Created("Créé") Requête traitée avec succès, et une nouvelle ressource a été créée.
Codes commençant par 3 Redirection Indique qu'une action supplémentaire doit être entreprisepar l'agent d'utilisateur afin de
satisfaire la demande.
305 Use Proxy ("Utiliser un
mandataire/proxy")
La ressource demandée n'est accessibleque via un proxy.
Codes commençant par 4 Erreur du client Indique que le navigateur semble s'être trompé.
404 Not Found ("Non trouvé") Le serveur n'a rien trouvé correspondant à l'url demandée. Rien ne précise si c'est temporaire,
mais si c'est définitif, l'erreur 410 est préférable.
Codes commençant par 5 Erreur du serveur Indique que le serveur web n'a pas réussi à traiter une requête pourtant valide(une mauvaise
nouvelle à transmettreaux services techniques du site en général...)
503 ServiceUnavailable("Service
indisponible")
Indisponibilitéen général temporaire du serveur,à cause d'une maintenance ou d'une surcharge.
8. Méthodes et réponses du protocol HTTP:
8
• Démo pour démonstration:
-
- Outils:
1) Serveur Node.js(Express.js)
2) Base de données MySql
3) Extension RESTMan comme client