Want to make creations as awesome as this one?

Transcript

consommer une API rest en PHP et JS

4. Exemples de code en JavaScript

3. Exemples de code en PHP

2. Test de l'API

1. Analyse de l'API REST

Objectifs : découvrez dans cette séquence de formation comment manipuler une API REST en ligne en PHP et JS.

Sommaire

Analyse de l'API REST

Nous allons étudier l'API JSONPlaceholder. Cette API est un excellent exemple pour comprendre le fonctionnement des requêtes HTTP, l'envoi et la réception de données au format JSON, ainsi que l'intégration d'une API dans une application. Présentation de l'API JSONPlaceholder :JSONPlaceholder est une API REST gratuite et accessible à tous, qui fournit des données fictives pour faciliter le développement et les tests d'applications. Elle a été créée par Tyler McGinnis et est hébergée sur le domaine typicode.com. L'API offre plusieurs ressources, telles que des posts, des commentaires, des albums, des photos et des utilisateurs.Les principales fonctionnalités de l'API JSONPlaceholder sont :

  1. Récupération de données : L'API permet de récupérer des données sous forme de listes ou d'éléments individuels, en utilisant des requêtes HTTP GET.
  2. Création de données : Il est possible de créer de nouvelles ressources en envoyant des requêtes HTTP POST avec les données au format JSON.
  3. Mise à jour de données : Les ressources existantes peuvent être mises à jour en envoyant des requêtes HTTP PUT ou PATCH avec les données modifiées au format JSON.
  4. Suppression de données : L'API prend en charge la suppression de ressources en envoyant des requêtes HTTP DELETE.

1- Analyse de l'API REST

Lire la documentation de l'API :

Endpoints de l'API JSONPlaceholder : L'API JSONPlaceholder propose plusieurs endpoints pour interagir avec les différentes ressources. Voici une liste des endpoints disponibles : /posts : Permet de récupérer, créer, mettre à jour et supprimer des posts. /comments : Permet de récupérer, créer, mettre à jour et supprimer des commentaires. /albums : Permet de récupérer, créer, mettre à jour et supprimer des albums. /photos : Permet de récupérer, créer, mettre à jour et supprimer des photos. /users : Permet de récupérer, créer, mettre à jour et supprimer des utilisateurs. /todos : Permet de récupérer, créer, mettre à jour et supprimer des tâches à faire.Afin de constater des résultats de l'API REST, je vous oriente vers le slide suivant afin de mettre en place des tests des différentes requêtes HTTP via l'outil "Postman".

1- Analyse de l'API REST

Lire la documentation de l'API :

Test de l'API

En s'appuyant sur les ressources proposées de la page d'accueil du site "https://jsonplaceholder.typicode.com/", on va tester les différentes requêtes HTTP.

2- Test de l'API

Tester les ressources de l'API :

Test de l’API avec Postman ou un autre outil similaire. Après avoir analysé la documentation, il est important de tester l'API pour s'assurer qu’elle fonctionne correctement. On peut utiliser un outil comme Postman pour envoyer des requêtes à l'API et vérifier les réponses. Lien vers l'outil Postman :

2- Test de l'API

Tester son API :

Exemple de code en PHP

Méthode GET : body vierge. Méthode POST : body alimenté.Méthode PUT/PATCH : body alimenté.Méthode DELETE : body vierge.

Base de données

API

Client

Dans l'application qui sollicite une API REST, la consommation des données se fera uniquement par requêtes HTTP en suivant les normes et "endpoints" de l'API.Certaines notions sont également à revoir concernant les requêtes HTTP. Le schéma ci-dessous résume la notion de "body" des requêtes HTTP :Les "headers" sont présents et alimentés à l'intérieur de la requête, ainsi que la réponse.Ce n'est pas forcément le cas pour le corps de la requête. Par contre, la réponse fournit un corps alimenté de données comme des messages de confirmation ou d'erreur par exemple.

  • Pour exécuter une requête HTTP, on utilise les fonctions PHP suivantes :
  • On décode la réponse JSON de la requête avec la fonction "json_decode", pour en obtenir un tableau PHP. Ici on retourne la liste des créations.

3- Exemple de code

Exécution des requêtes HTTP :

3- Exemple de code

Traitement d'un ajout via un formulaire :

Exemple de code en JS

Pour consommer des données d'API en JavaScript, on utilise l'API Fetch.L’API Fetch est un mécanisme intégré à JavaScript qui permet d’effectuer des requêtes HTTP (comme les requêtes GET, POST, etc.) vers des serveurs distants. Elle remplace l’ancien objet XMLHttpRequest et offre une approche plus moderne et flexible pour récupérer et envoyer des données.Voici comment utiliser l’API Fetch :

  • Appel de base avec fetch(url) :
Pour effectuer une requête, utilisez la méthode fetch(url) en lui passant l’URL du serveur distant. Par exemple, pour récupérer des données depuis l'API, vous pouvez faire :
  • Gestion des promesses avec .then() :
L’appel à fetch() renvoie une promesse. Utilisez .then() pour gérer la réponse du serveur. Dans l’exemple précédent, nous utilisons .then(response => response.json()) pour extraire les données JSON de la réponse. Je vous invite à reprendre les exemples du site ici

4- Exemple de code en JS

Exemples du site jsonplaceholder :

5- Exercices

Retour sur VirtualSchool

Vous venez de terminer cette séquence de formation ! Bravo à présent c'est à vous de jouer ! Rendez-vous dans VirtualSchool pour poursuivre l'aventure... Au programme le exercice 01 intitulé : "Consommer l'API REST en PHP"

Terminé !

La variable $url contient l'URL de l'API à laquelle on souhaite envoyer la requête. Dans cet exemple, l'URL pointe vers une ressource nommée "creation" et l'action associée est "add".Les données à envoyer à l'API sont stockées dans un tableau associatif $data. Les clés du tableau correspondent aux noms des champs attendus par l'API, et les valeurs sont récupérées à partir du tableau $_POST, qui contient les données envoyées par un formulaire HTML. Les données du tableau $data sont ensuite converties en format JSON à l'aide de la fonction json_encode(). Cette étape est nécessaire car l'API attend des données au format JSON. Les options de la requête HTTP sont définies dans un tableau $opts. On y précise que la méthode utilisée est "POST", que le type de contenu est "application/json" et que le contenu de la requête est le JSON généré à l'étape précédente. Le contexte de flux est créé à l'aide de la fonction stream_context_create(), qui prend en paramètre le tableau $opts. Ce contexte de flux permet de définir les options de la requête HTTP. La requête HTTP est envoyée à l'aide de la fonction file_get_contents(), qui prend en paramètre l'URL de l'API, le paramètre false pour indiquer que l'on ne souhaite pas utiliser de contexte de flux par défaut, et le contexte de flux créé à l'étape précédente. Enfin, une fois la requête envoyée, l'utilisateur est redirigé vers la page "home.php" à l'aide de la fonction header().Le traitement de l'image n'est pas traité ici, car le traitement d'upload de fichier n'est pas possible via le body de la requête, sans utiliser un outil spécifique comme "Curl". Il s'agit d'une extension déjà installée dans le langage PHP.On pourrait traiter l'upload en faisant un traitement en base64, mais cette pratique demande beaucoup de ressource.