Académique Documents
Professionnel Documents
Culture Documents
? | Codecademy
English French
Catégories d'articles →
Équipe Codecademy
RESTFUL API
https://www-codecademy-com.translate.goog/article/what-is-rest?_x_tr_sl=en&_x_tr_tl=fr&_x_tr_hl=en&_x_tr_pto=wapp 1/10
2/14/23, 2:00 PM Qu'est-ce que le REPOS ? | Codecademy
services sur le Web. Portez une attention particulière : si vous recherchez une carrière dans le
domaine de la technologie, il se peut qu'on vous demande de définir le repos lors d'un entretien.
Tant que chaque côté sait quel format de messages envoyer à l'autre, ils peuvent rester
modulaires et séparés. En séparant les problèmes d'interface utilisateur des problèmes de
stockage de données, nous améliorons la flexibilité de l'interface sur toutes les plates-formes et
améliorons l'évolutivité en simplifiant les composants du serveur. De plus, la séparation permet à
chaque composant d'évoluer indépendamment.
En utilisant une interface REST, différents clients accèdent aux mêmes points de terminaison
REST, effectuent les mêmes actions et reçoivent les mêmes réponses.
Apatridie
Les systèmes qui suivent le paradigme REST sont sans état, ce qui signifie que le serveur n'a pas
besoin de savoir dans quel état se trouve le client et vice versa. De cette façon, le serveur et le
client peuvent comprendre n'importe quel message reçu, même sans voir les messages
précédents. Cette contrainte d'apatridie est appliquée par l'utilisation de ressources plutôt que
par des commandes . Les ressources sont les noms du Web - elles décrivent tout objet,
document ou chose que vous pourriez avoir besoin de stocker ou d'envoyer à d'autres services.
Étant donné que les systèmes REST interagissent via des opérations standard sur les ressources,
ils ne reposent pas sur l'implémentation d'interfaces.
Ces contraintes aident les applications RESTful à atteindre la fiabilité, les performances rapides et
l'évolutivité, en tant que composants pouvant être gérés, mis à jour et réutilisés sans affecter le
système dans son ensemble, même pendant le fonctionnement du système.
Verbes HTTP
Il existe 4 verbes HTTP de base que nous utilisons dans les requêtes pour interagir avec les
ressources dans un système REST :
GET — récupère une ressource spécifique (par identifiant) ou une collection de ressources
POST — créer une nouvelle ressource
PUT - mettre à jour une ressource spécifique (par identifiant)
SUPPRIMER - supprimer une ressource spécifique par identifiant
Vous pouvez en savoir plus sur ces verbes HTTP dans l'article Codecademy suivant :
Les types MIME, utilisés pour spécifier les types de contenu dans le Accept champ, consistent en a
type et a subtype . Ils sont séparés par une barre oblique (/).
Par exemple, un fichier texte contenant du HTML serait spécifié avec le type text/html . Si ce fichier
texte contenait du CSS à la place, il serait spécifié comme text/css . Un fichier texte générique
serait noté text/plain . Cette valeur par défaut, text/plain , n'est cependant pas un fourre-tout. Si un
client attend text/css et reçoit text/plain , il ne pourra pas reconnaître le contenu.
https://www-codecademy-com.translate.goog/article/what-is-rest?_x_tr_sl=en&_x_tr_tl=fr&_x_tr_hl=en&_x_tr_pto=wapp 3/10
2/14/23, 2:00 PM Qu'est-ce que le REPOS ? | Codecademy
Par exemple, un client accédant à une ressource avec id 23 dans une articles ressource sur un
serveur peut envoyer une requête GET comme celle-ci :
GET /articles/23
Accept: text/html, application/xhtml
Le Accept champ d'en-tête dans ce cas indique que le client acceptera le contenu dans
text/html ou application/xhtml .
Chemins
Les requêtes doivent contenir un chemin vers une ressource sur laquelle l'opération doit être
effectuée. Dans les API RESTful, les chemins doivent être conçus pour aider le client à savoir ce
qui se passe.
Classiquement, la première partie du chemin doit être la forme plurielle de la ressource. Cela
permet de garder les chemins imbriqués simples à lire et faciles à comprendre.
Les chemins doivent contenir les informations nécessaires pour localiser une ressource avec le
degré de spécificité nécessaire. Lorsque vous faites référence à une liste ou à une collection de
ressources, il n'est pas toujours nécessaire d'ajouter un id . Par exemple, une requête POST au
fashionboutique.com/customers chemin n'aurait pas besoin d'un identifiant supplémentaire, car le
serveur générera un id pour le nouvel objet.
Si nous essayons d'accéder à une seule ressource, nous aurions besoin d'ajouter un id au chemin.
Par exemple : GET fashionboutique.com/customers/:id — récupère l'élément dans la customers ressource
avec le id spécifié. DELETE fashionboutique.com/customers/:id — supprime l'élément dans la
customers ressource avec le id spécifié.
Envoi de réponses
Types de contenu
https://www-codecademy-com.translate.goog/article/what-is-rest?_x_tr_sl=en&_x_tr_tl=fr&_x_tr_hl=en&_x_tr_pto=wapp 4/10
2/14/23, 2:00 PM Qu'est-ce que le REPOS ? | Codecademy
Dans les cas où le serveur envoie une charge utile de données au client, le serveur doit inclure un
content-type dans l'en-tête de la réponse. Ce content-type champ d'en-tête alerte le client sur le type
de données qu'il envoie dans le corps de la réponse. Ces types de contenu sont des types MIME,
tout comme ils le sont dans le accept champ de l'en-tête de la requête. Le content-type que le
serveur renvoie dans la réponse doit être l'une des options que le client a spécifiées dans le
accept champ de la requête.
Par exemple, lorsqu'un client accède à une ressource avec id 23 dans une articles ressource avec
cette requête GET :
Cela signifierait que le contenu demandé est renvoyé dans le corps de la réponse avec un content-
type of text/html , ce que le client a déclaré pouvoir accepter.
Codes de réponse
Les réponses du serveur contiennent des codes d'état pour alerter le client des informations sur
le succès de l'opération. En tant que développeur, vous n'avez pas besoin de connaître tous les
codes d'état (il y en a beaucoup ), mais vous devez connaître les plus courants et leur utilisation :
200 (d'accord) Il s'agit de la réponse standard pour les requêtes HTTP réussies.
https://www-codecademy-com.translate.goog/article/what-is-rest?_x_tr_sl=en&_x_tr_tl=fr&_x_tr_hl=en&_x_tr_pto=wapp 5/10
2/14/23, 2:00 PM Qu'est-ce que le REPOS ? | Codecademy
Pour chaque verbe HTTP, il existe des codes d'état attendus qu'un serveur doit renvoyer en cas
de succès :
GET http://fashionboutique.com/customers
Accept: application/json
POST http://fashionboutique.com/customers
Body:
{
“customer”: {
“name” = “Scylla Buss”,
“email” = “scylla.buss@codecademy.org”
}
}
Le serveur génère ensuite un id pour cet objet et le renvoie au client, avec un en-tête comme :
201 (CREATED)
Content-type: application/json
https://www-codecademy-com.translate.goog/article/what-is-rest?_x_tr_sl=en&_x_tr_tl=fr&_x_tr_hl=en&_x_tr_pto=wapp 6/10
2/14/23, 2:00 PM Qu'est-ce que le REPOS ? | Codecademy
Pour afficher un seul client, nous l' obtenons en spécifiant l'identifiant de ce client :
GET http://fashionboutique.com/customers/123
Accept: application/json
PUT http://fashionboutique.com/customers/123
Body:
{
“customer”: {
“name” = “Scylla Buss”,
“email” = “scyllabuss1@codecademy.com”
}
}
Un en-tête de réponse possible aurait Status Code: 200 (OK) , pour notifier au client que l'élément
avec id 123 a été modifié.
DELETE http://fashionboutique.com/customers/123
La réponse aurait un en-tête contenant Status Code: 204 (NO CONTENT) , informant le client que
l'élément avec id 123 a été supprimé, et rien dans le corps.
https://www-codecademy-com.translate.goog/article/what-is-rest?_x_tr_sl=en&_x_tr_tl=fr&_x_tr_hl=en&_x_tr_pto=wapp 7/10
2/14/23, 2:00 PM Qu'est-ce que le REPOS ? | Codecademy
{
“photo”: {
"id": <Integer>,
“venue_id”: <Integer>,
“author_id”: <Integer>
}
}
{
“venue”: {
"id": <Integer>,
“name”: <String>,
“address”: <String>
}
}
https://www-codecademy-com.translate.goog/article/what-is-rest?_x_tr_sl=en&_x_tr_tl=fr&_x_tr_hl=en&_x_tr_pto=wapp 8/10
2/14/23, 2:00 PM Qu'est-ce que le REPOS ? | Codecademy
Demande - GET /style.css Accepter : text/css Réponse - 200 (OK) Type de contenu : text/css
Request- GET /venues Accept: application/json Response- 200 (OK) Content-type: application/json
Request- GET /venues/:id Accept: application/json Response- 200 (OK) Content-type: application/json
POST Requests
Request- POST /users Response- 201 (CREATED) Content-type: application/json
PUT Requests
Request- PUT /users/:id Response- 200 (OK)
DELETE Requests
Request- DELETE /venues/:id Response- 204 (NO CONTENT)
Share
Skill Path
https://www-codecademy-com.translate.goog/article/what-is-rest?_x_tr_sl=en&_x_tr_tl=fr&_x_tr_hl=en&_x_tr_pto=wapp 9/10
2/14/23, 2:00 PM Qu'est-ce que le REPOS ? | Codecademy
Course
Learn Node.js
Intermediate, 4 Lessons
https://www-codecademy-com.translate.goog/article/what-is-rest?_x_tr_sl=en&_x_tr_tl=fr&_x_tr_hl=en&_x_tr_pto=wapp 10/10