FAQ API Rest

18/03/20 danny

Définitions

API ( Application Programming Interface)

  • Interface de programmation d’application


REST(Representational State Transfer)

  • Style d'architecture logicielle définissant un ensemble de contraintes

Fonctionnement

Principes

  • un URI de base (Uniform Resource Identifier ou identifiant uniforme de ressource)
    exemple http://api.ganatan.com/movies
     
  • des méthodes HTTP standards
    GET, POST, PUT, PATCH et DELETE

Méthodes

Liste des méthodes ou verbes

  • GET /movies : Liste les movies
     
  • POST/movies : Crée un movie
     
  • GET/movies/1 : Détails movie 1 
     
  • GET/movies/2 : Détails movie 2
     
  • PUT/movies/1 : Modifie movie 1
     
  • DELETE/movies/1 : Supprime movie 1

Codes retour

Liste des Codes de retour HTTP

  • 100-199 : Reponse provisoire
  • 200-299 :  Requête réussie
  • 400-499 : Erreur le serveur ne peut pas interpréter la commande
  • 500-599 : Erreur technique sur le serveur

Liste détaillée des HTTP Status Codes

  • 200 (OK)
  • 201 (Created)
  • 202 (Accepted)
  • 204 (No Content)
  • 301 (Moved Permanently)
  • 302 (Found)
  • 303 (See Other)
  • 304 (Not Modified)
  • 307 (Temporary Redirect)
  • 400 (Bad Request)
  • 401 (Unauthorized)
  • 403 (Forbidden)
  • 404 (Not Found)
  • 405 (Method Not Allowed)
  • 406 (Not Acceptable)
  • 412 (Precondition Failed)
  • 415 (Unsupported Media Type)
  • 500 (Internal Server Error)
  • 501 (Not Implemented)

GET

Permet de lister une liste d'enregistrements ou un enregistrement en particulier.

GET /api/movies

[
  { "id": 1, "name": "Alien" },
  { "id": 1, "name": "Gladiator" },
  { "id": 1, "name": "Blade Runner" },
  { "id": 1, "name": "Prometheus" }
]

GET /api/movies/1
 

{
  "id": 1,
  "name": "Alien"
}

POST

Permet de créer un nouvel enregistrement

POST /api/movies

envoi
{
  "name": "Legend"
}
reponse
{
  "id": 5,
  "name": "Legend"
}

PUT

Permet de modifier un enregistrement.

PUT /api/movies/1

envoi
{
  "name": "Black Hawk Down"
}

Delete

Permet de supprimer un enregistrement.

DELETE /api/movies/1