Différences
Ci-dessous, les différences entre deux révisions de la page.
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:05] – [Principes REST] jcheron | web:api [2023/04/25 02:42] (Version actuelle) – [Liens] jcheron | ||
---|---|---|---|
Ligne 12: | Ligne 12: | ||
- un paramètre comme jeton d’authentification | - un paramètre comme jeton d’authentification | ||
- | === URI === | + | === 1- URI === |
REST se base sur les URI pour identifier une ressource. Une API doit définir ses URI (et donc ses URL) de manière précise, en tenant compte des contraintes de lisibilité de REST, en prenant en compte la hiérarchie des ressources et la sémantique des URL : | REST se base sur les URI pour identifier une ressource. Une API doit définir ses URI (et donc ses URL) de manière précise, en tenant compte des contraintes de lisibilité de REST, en prenant en compte la hiérarchie des ressources et la sémantique des URL : | ||
Ligne 33: | Ligne 33: | ||
**Affichage d'un client** | **Affichage d'un client** | ||
<sxh ; | <sxh ; | ||
- | NOK : https:// | + | NOK : https:// |
OK : https:// | OK : https:// | ||
</ | </ | ||
Ligne 48: | Ligne 48: | ||
OK : https:// | OK : https:// | ||
</ | </ | ||
+ | |||
+ | === 2 - Méthodes HTTP === | ||
+ | Utilisation des verbes HTTP existants (méthodes) plutôt que d’inclure l’opération dans l’URI de la ressource. | ||
+ | |||
+ | ^Action ^ Méthode (verbe) ^ | ||
+ | |Créer (create) | POST | | ||
+ | |Afficher (read) | GET | | ||
+ | |Mettre à jour (update) | PUT | | ||
+ | |Supprimer (delete) | DELETE | | ||
+ | |||
+ | |||
+ | **Créer un client** | ||
+ | <sxh ; | ||
+ | NOK : GET https:// | ||
+ | OK : POST https:// | ||
+ | </ | ||
+ | |||
+ | **Afficher un client** | ||
+ | <sxh ; | ||
+ | NOK : GET https:// | ||
+ | OK : GET https:// | ||
+ | </ | ||
+ | |||
+ | **Mettre à jour un client** | ||
+ | <sxh ; | ||
+ | NOK : POST https:// | ||
+ | OK : PUT https:// | ||
+ | </ | ||
+ | |||
+ | **Supprimer un client** | ||
+ | <sxh ; | ||
+ | NOK : GET https:// | ||
+ | OK : DELETE https:// | ||
+ | </ | ||
+ | |||
+ | === 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 ; | ||
+ | GET /clients | ||
+ | Host: myapi.com | ||
+ | Accept: application/ | ||
+ | </ | ||
+ | |||
+ | |||
+ | === 4 - Liens = relation entre ressources === | ||
+ | Les liens d'une ressource indiquent les relations qu' | ||
+ | L’IANA donne une liste de relation parmi lesquelles : | ||
+ | |||
+ | * contents | ||
+ | * edit | ||
+ | * next | ||
+ | * last | ||
+ | * payment | ||
+ | * etc... | ||
+ | |||
+ | [[https:// | ||
+ | |||
+ | === 5 - Authentification par jeton === | ||
+ | |||
+ | REST étant par principe **stateless** (pas de session HTTP par exemple), l' | ||
+ | |||
+ | 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:// | ||
+ | |||
+ | ===== Liens ===== | ||
+ | * [[https:// | ||
+ | * [[https:// | ||
+ | * [[https:// | ||
+ | * [[https:// | ||
+ | * [[https:// | ||
+ |