web:api

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
web:api [2023/03/06 11:08] jcheronweb:api [2023/04/25 02:42] (Version actuelle) – [Liens] jcheron
Ligne 33: Ligne 33:
 **Affichage d'un client** **Affichage d'un client**
 <sxh ;gutter:false> <sxh ;gutter:false>
-NOK : https://myapi.com/clients/87+NOK : https://myapi.com/clients/display/87
 OK : https://myapi.com/clients/87 OK : https://myapi.com/clients/87
 </sxh> </sxh>
Ligne 57: Ligne 57:
 |Mettre à jour (update) | PUT | |Mettre à jour (update) | PUT |
 |Supprimer (delete) | DELETE | |Supprimer (delete) | DELETE |
 +
 +
 +**Créer un client**
 +<sxh ;gutter:false>
 +NOK : GET https://myapi.com/clients/create
 +OK : POST https://myapi.com/clients
 +</sxh>
 +
 +**Afficher un client**
 +<sxh ;gutter:false>
 +NOK : GET https://myapi.com/clients/display/87
 +OK : GET https://myapi.com/clients/87
 +</sxh>
 +
 +**Mettre à jour un client**
 +<sxh ;gutter:false>
 +NOK : POST https://myapi.com/clients/update/87
 +OK : PUT https://myapi.com/clients/87
 +</sxh>
 +
 +**Supprimer un client**
 +<sxh ;gutter:false>
 +NOK : GET https://myapi.com/clients/delete/87
 +OK : DELETE https://myapi.com/clients/87
 +</sxh>
 +
 +=== 3 - Représentation de ressources ===
 +
 +La réponse HTTP reçue est une représentation de ressource, et non la ressource elle même :
 +
 +En fonction de la requête effectuée et de son en-tête **Accept**, plusieurs formmats de réponses sont envisageables :
 +  * JSON
 +  * XML
 +  * HTML
 +  * CSV
 +  * etc...
 +
 +**Exemple**
 +
 +<sxh ;gutter:false>
 +GET /clients
 +Host: myapi.com
 +Accept: application/xml
 +</sxh>
 +
 +
 +=== 4 - Liens = relation entre ressources ===
 +Les liens d'une ressource indiquent les relations qu'elle peut avoir avac d'autres. Pour indiquer la nature de la relation, l’attribut **rel** doit être spécifié sur tous les liens.
 +L’IANA donne une liste de relation parmi lesquelles :
 +
 +  * contents
 +  * edit
 +  * next
 +  * last
 +  * payment
 +  * etc...
 +
 +[[https://www.iana.org/assignments/link-relations/link-relations.xhtml|Liste complète sur le site de l’IANA]]
 +
 +=== 5 - Authentification par jeton ===
 +
 +REST étant par principe **stateless** (pas de session HTTP par exemple), l'authentification se fait par jeton d’authentification.
 +
 +Chaque requête est envoyée avec un jeton (token) passé en paramètre **GET** de la requête ou dans les headers. Ce jeton temporaire est obtenu en envoyant une première requête d’authentification puis en le combinant avec les requêtes.
 +
 +[[https://jwt.io/|JWT]] est l'un des standards d'authentification les plus utilisés.
 +
 +===== Liens =====
 +  * [[https://api-platform.com/|API Platform]]
 +  * [[https://jamstack.org/|JamStack]]
 +  * [[https://www.openapis.org/|OpenAPI]]
 +  * [[https://graphql.org/|GraphQL]]
 +  * [[https://strapi.io/|Headless CMS Strapi]]
 +
  • web/api.1678097321.txt.gz
  • Dernière modification : il y a 2 ans
  • de jcheron