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 | ||
si7:configuration:apirest [2021/02/28 11:50] techer.charles_educ-valadon-limoges.fr [Les réponses API REST] |
si7:configuration:apirest [2021/03/04 19:09] techer.charles_educ-valadon-limoges.fr |
||
---|---|---|---|
Ligne 67: | Ligne 67: | ||
| PUT| Mettre à jour| Remplacer ou mettre à jour une ressource existante. | | PUT| Mettre à jour| Remplacer ou mettre à jour une ressource existante. | ||
| PATCH| Mise à jour partielle| Mettez à jour certains détails à partir d'une ressource existante.| | | PATCH| Mise à jour partielle| Mettez à jour certains détails à partir d'une ressource existante.| | ||
- | | DEL| Supprimer| une ressource du système.| | + | | DELETE| Supprimer| une ressource du système.| |
* **En-tête** : l'API REST utilise le format d' | * **En-tête** : l'API REST utilise le format d' | ||
Ligne 109: | Ligne 109: | ||
| 503| Service non disponible| La demande ne peut pas être traitée car actuellement le serveur ne peut pas gérer la demande| | | 503| Service non disponible| La demande ne peut pas être traitée car actuellement le serveur ne peut pas gérer la demande| | ||
+ | ===== Utilisation de diagrammes de séquence avec l'API REST ===== | ||
+ | L' | ||
+ | <uml> | ||
+ | ==Requête GET== | ||
+ | Client -> Serveur_HTTP_S : HTTP/S : créer session\navec accréditation | ||
+ | Serveur_HTTP_S -> Client : jeton\nd' | ||
+ | Client -> Serveur_HTTP_S : HTTP/S : GET\nliste des périphériques | ||
+ | Serveur_HTTP_S -> Service_API : GET\nliste des périphériques | ||
+ | Service_API -> BDDConfiguration : Fetch\nliste des périphériques | ||
+ | BDDConfiguration -> Service_API : Réponse\nliste des périphériques | ||
+ | Service_API -> Serveur_HTTP_S : Réponse\nliste des périphériques | ||
+ | Serveur_HTTP_S -> Client : HTTP/S Réponse\nliste des périphériques\nCode réponse 200\nSuccess | ||
+ | ==Requête POST en asynchrone== | ||
+ | Client -> Serveur_HTTP_S : HTTP/S : POST\nAjout équipement X | ||
+ | Serveur_HTTP_S -> Service_API : ADD\nAjout équipement X | ||
+ | Service_API -> Coeur_app : initiation\najout équipement | ||
+ | Coeur_app -> Service_API : Réponse\nID de la tâche | ||
+ | Service_API -> BDDConfiguration : ADD\nAjout équipement X | ||
+ | Service_API -> Client : HTTP/S : réponse ID de la tâche\nCode réponse 2020 (accepted) | ||
+ | BDDConfiguration -> Service_API : \nEcriture faite | ||
+ | Service_API -> Serveur_HTTP_S : \nEcriture faite\navec succès | ||
+ | Serveur_HTTP_S -> Client : HTTP/S Réponse\nliste des périphériques | ||
+ | </ | ||
+ | ===== Authentification à une API REST ===== | ||
+ | Pour des raisons de sécurité, la plupart des API REST nécessitent une authentification afin que les utilisateurs aléatoires ne puissent pas créer, mettre à jour ou supprimer des informations de manière incorrecte ou malveillante, | ||
+ | Des API qui ne nécessitent pas d' | ||
+ | |||
+ | **L' | ||
+ | |||
+ | **L' | ||
+ | |||
+ | ==== Mécanismes d' | ||
+ | Les types courants de mécanismes d' | ||
+ | |||
+ | === Authentification de base === | ||
+ | Cette authentification utilise le schéma d' | ||
+ | |||
+ | C'est le mécanisme d' | ||
+ | |||
+ | <WRAP center round info> | ||
+ | Dans une requête d'API REST, les informations d' | ||
+ | < | ||
+ | Authorization: | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | === Authentification du porteur === | ||
+ | Ce mécanisme d' | ||
+ | |||
+ | <WRAP center round info> | ||
+ | Tout comme l' | ||
+ | |||
+ | Dans une requête d'API REST, les informations d' | ||
+ | < | ||
+ | Authorization: | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | === Clé API === | ||
+ | Une **clé API** ou jeton API, est une **chaîne alphanumérique unique générée par le serveur** et affectée à un utilisateur. Pour obtenir une clé API unique, l' | ||
+ | |||
+ | Tout comme avec les autres types d' | ||
+ | |||
+ | Les clés API sont destinées à être un mécanisme d' | ||
+ | |||
+ | Les deux types de clés API sont publiques et privées. | ||
+ | * Une clé d'API publique peut être partagée et permet à cet utilisateur d' | ||
+ | * une clé privée ne doit pas être partagée, car elle est similaire à votre nom d' | ||
+ | |||
+ | La plupart des clés d'API n' | ||
+ | |||
+ | <WRAP center round info> | ||
+ | Une requête API REST peut fournir une clé API de différentes manières: | ||
+ | < | ||
+ | Query string: Recommandé uniquement pour les clés API publiques | ||
+ | </ | ||
+ | |||
+ | * Header: Utilise la clé Autorisation ou une clé personnalisée | ||
+ | < | ||
+ | Authorization: | ||
+ | ou | ||
+ | Authorization: | ||
+ | ou | ||
+ | APIkey: <API Key> | ||
+ | </ | ||
+ | |||
+ | * Body data: Utilise une clé unique comme identifiant | ||
+ | < | ||
+ | Content-Type: | ||
+ | </ | ||
+ | |||
+ | * Cookie: Utilise une clé unique comme identifiant | ||
+ | < | ||
+ | Cookie: API_KEY=< | ||
+ | </ | ||
+ | </ | ||
+ | |||
==== Retour Activité A8 ==== | ==== Retour Activité A8 ==== | ||
* [[glpi_gestionconfig_00|A8 - La gestion des configurations avec GLPI]] | * [[glpi_gestionconfig_00|A8 - La gestion des configurations avec GLPI]] |