https://github.com/heig-vd-devprodmed-course/heig-vd-devprodmed-course
Visualiser le contenu complet sur GitHub à cette adresse.
L. Delafontaine, avec l'aide de GitHub Copilot.
Ce travail est sous licence CC BY-SA 4.0.
Cette présentation est un résumé du contenu complet disponible sur GitHub.
Pour plus de détails, consulter le contenu complet sur GitHub ou en cliquant sur l'en-tête de ce document.
Il s'agit du dernier contenu du cours !
Une application REST respecte les principes suivants :
Accept: application/json
Content-Type: application/json
Conventions d'une API RESTful :
Exemple pour une ressource posts :
posts
GET
/api/posts
POST
/api/posts/{id}
PUT/PATCH
DELETE
# Version 1 GET /api/v1/posts # Version 2 GET /api/v2/posts
Pas d'interface graphique → outils spécifiques nécessaires :
# Exemple avec curl pour tester l'API RESTful de notre application Laravel curl -s -H "Authorization: Bearer <token>" -H "Accept: application/json" \ http://localhost:8000/api/posts
Notre application Laravel suit déjà en grande partie ces principes.
Il suffit de l'adapter pour qu'elle soit pleinement RESTful.
Laravel met des outils à notre disposition pour cela.
routes/web.php
routes/api.php
/api
auth
auth:sanctum
Laravel Sanctum est un package Laravel qui permet de gérer l'authentification via des tokens pour les API RESTful.
Il permet de :
Inclure le token dans l'en-tête Authorization avec l'en-tête Accept: application/json pour indiquer que le client souhaite recevoir une réponse au format JSON.
Authorization
# Exemple avec curl pour tester l'API RESTful de notre application Laravel curl -s \ -H "Authorization: Bearer <token>" \ # Le token est utilisé ici -H "Accept: application/json" \ # Le client souhaite recevoir du JSON http://localhost:8000/api/posts # Requête à l'API RESTful
// Vérifie si le token a la permission `posts:create` $request->user()->tokenCan('posts:create');
Est-ce que vous avez des questions ?
Le formulaire de feedback vous permet de partager votre retour sur le cours "DévProdMéd".
Il ne prend que quelques minutes et est anonyme.
Les résultats seront discutés à la fin du cours. Merci beaucoup !
Visualiser le contenu complet sur GitHub.
N'hésitez pas à vous entraidez si vous avez des difficultés !
URLs
Illustrations