Séance 06 API REST PDF
Document Details
Uploaded by BeneficentRainforest7666
Université Moulay Ismail
H. Hantouti
Tags
Summary
Ce document présente les API REST à travers différents concepts, allant de la théorie à la pratique. Des exemples sont donnés pour illustrer la manière dont les API REST fonctionnent et comment elles sont utilisées dans le développement web et l'architecture des applications.
Full Transcript
Matière: programmable des réseaux Programmabilité des réseaux: Filiere: IA Année universitaire: 2023-2024 Professeur: H. Hantouti API Rest Introduction ► RESTCONF est un protocole basé sur HTTP et une interface de gestion des applications réseau utilisant REST. ►...
Matière: programmable des réseaux Programmabilité des réseaux: Filiere: IA Année universitaire: 2023-2024 Professeur: H. Hantouti API Rest Introduction ► RESTCONF est un protocole basé sur HTTP et une interface de gestion des applications réseau utilisant REST. ► Rest est la structure API publique la plus largement déployée pour les produits et les services Web. 3 Source: lien Introduction ► REST est populaire en raison de ses performances, l'échelle, la simplicité et la fiabilité ► l’un des standards de création d’API les plus logiques, efficaces, et utilisés. ► d’après le rapport 2017 de l’état d’intégration des API de Cloud Elements , 83 % des API sont des API REST. 4 API REST ► REST signifie Representational State Transfer (ou transfert d’état de représentation, en français), ► Constitue un ensemble de normes, ou de lignes directrices architecturales qui structurent la façon de communiquer les données entre votre application et le reste du monde, ou entre différents composants de votre application. ► On utilise aussi l’adjectif RESTful pour décrire les API REST. 5 Qu'est-ce qu'une API REST ? ► Une API REST, ou Interface de Programmation d'Applications au format Representational State Transfer. ► REST est un ensemble de règles qui définissent comment les applications peuvent communiquer entre elles. ► Exemple: comme un menu dans un restaurant : vous (le client) passez une commande (la requête) et le restaurant (le serveur) vous apporte le plat (la réponse). 6 API REST ► Les API REST offrent un moyen de communication standardisé entre le client et les données. ► Les API RESTful se basent sur le protocole HTTP pour transférer les informations – le même protocole sur lequel la communication web est fondée ! ► lorsque vous voyez http au début d’une URL, comme http://twitter.com – votre navigateur utilise HTTP pour faire une requête de ce site web au serveur. REST fonctionne de la même façon ! 7 API non REST : qu'est-ce que c'est ? ► Une API non REST est toute API qui ne respecte pas l'ensemble des contraintes de l'architecture REST. ► Il peut s'agir d'API plus anciennes, d'API spécifiques à un fournisseur ou d'API utilisant des protocoles de communication différents (comme SOAP, par exemple). 8 Qu'est-ce qui définit une API REST ? ► Une API REST suit un ensemble de contraintes architecturales spécifiques. ► Ces contraintes visent à créer des systèmes distribués légers et évolutifs. Les principales caractéristiques d'une API REST sont : o Sans état : Chaque requête contient toutes les informations nécessaires pour être traitée, le serveur ne stocke aucune information entre les requêtes. o Client-serveur : Une stricte séparation entre le client qui consomme les services et le serveur qui les fournit. o Utilisation de méthodes HTTP : Les requêtes sont effectuées à l'aide des méthodes HTTP standard (GET, POST, PUT, DELETE). o Ressources identifiées par des URI : Chaque élément accessible via l'API est identifié par une URI unique. o Représentations : Les données sont transmises sous forme de représentations (JSON, XML, etc.). 9 Pourquoi utiliser les API REST ? ► Simplicité: Les API REST sont relativement simples à comprendre et à utiliser. ► Flexibilité: Elles permettent de créer des applications distribuées et modulaires. ► Interopérabilité: Les API REST utilisent des standards ouverts, ce qui facilite l'intégration avec d'autres systèmes. ► Évolution: Les API REST sont faciles à évoluer et à maintenir. 10 Comment fonctionnent les API REST ? ► Le client envoie une requête: Le client envoie une requête HTTP à une URL spécifique du serveur. ► Le serveur traite la requête: Le serveur analyse la requête et identifie la ressource demandée. ► Le serveur renvoie une réponse: Le serveur envoie une réponse au client, contenant les données demandées ou un code d'erreur. 11 Exemple ► imaginons une API REST pour gérer des articles de blog. Une requête pour récupérer tous les articles pourrait ressembler à ceci : ► GET /articles ► ► Une requête pour créer un nouvel article pourrait ressembler à ceci : ► POST /articles ► ► avec dans le corps de la requête les données du nouvel article (titre, contenu, etc.). 12 Resources et collections Rest ► Les données REST sont représentées dans ce qu’on appelle des ressources. ► Une ressource peut être tout type d’objet nominal (on lui attribue un nom) que vous pouvez utiliser pour représenter les données dans votre application. Vous savez, une personne, un lieu, ou autre chose. ► Les ressources sont regroupées dans un groupe que l’on appelle une collection. On s’y réfère avec la forme au pluriel du nom de la ressource. 14 URI ► Si une ressource est l’objet qui stocke vos données, pour les récupérer vous allez avoir besoin d’un identifiant de ressource uniforme, ou URI pour Uniform Resource Identifier. ► L’URI est le moyen d’identifier votre ressource, comme une étiquette. 15 L'URI : Que demandez-vous ? ► http:// ou https:// Définir si le site est sécurisé ou ouvert ► Serveur ou hôte : Résout l'IP et le port pour se connecter ► Ressource: L'emplacement des données ou de l'objet d'intérêt sur le serveur ► Paramètres: Détails permettant d'étendre, de filtrer ou de clarifier une demande. Souvent facultatifs. 16 URI et URL ► Toutes les URL sont des URI, mais toutes les URI ne sont pas des URL. ► L’URI permet d’identifier une ressource tandis que l’URL permet de la localiser. ► Exemple: Si le module net prog a pour ID 1, alors l’URI serait /modules/1. L’URL serait https://.ia.com/modules/1 ► L’URL de la requête est l’endpoint complet que vous utilisez pour votre requête. Il associe le nom de domaine + le path de votre ressource. 17 XML, JSON et APIs REST ► Les données des API REST peuvent utiliser deux langages : XML et JSON. ► Si une API renvoie un set de données en XML ou en JSON, le contenu restera le même, mais la forme change. Le format de données est différent. 18 Recapitulatif ► Une ressource est un objet de type nominal utilisé pour sauvegarder des données dans une API. ► Les ressources sont regroupées en collection et sont nommées au pluriel. ► Vous pouvez accéder aux ressources dans les API avec des URI. ► Les données REST peuvent être en langage JSON ou XML, mais le JSON est le plus courant. 19 Rest et HTTP ► Le flux API REST gère à la fois les demandes (requests) et les réponses. ► L'application envoie une demande à l'aide d'un verbe standard, tel que GET, à un point de terminaison qui exécute un service Web qui comprend cette demande. ► L'application reçoit une réponse HTTP standard du point de terminaison du service avec un code d'état et des en-têtes. ► La réponse peut également inclure une charge utile de données. 20 Rest et verbes HTTP 21 Source: llien Rest et verbes HTTP (requests) 22 Source: lien Codes d'état de la réponse (Response) Source: lien 23 Codes d'état de la réponse (Response) Pour plus de details: Lien1 200 100-500 24 En-têtes : Détails et méta-données ► Utilisé pour transmettre des informations entre le client et le serveur ► Inclus à la fois dans REQUEST et RESPONSE ► Certaines API utilisent des en-têtes personnalisés pour l'authentification ou à d'autres fins. En-tete Exemple Description Content-type application/json Spécifiez le format des données dans le corps du texte. Accept application/json Spécifiez le format demandé pour les données retournées données Authorization Basic dmFncmFudDp2YWdyYW50 Fournir des informations d'identification pour autoriser une requête Date Fri, 25 Jul 2022 08:26:00 GMT +1 Date et heure 25 du message Pour plus de details: wiki Authentification et sécurité HTTP ► None: Aucune authentification requise, l'API est publique ► Authentification de base: Les identifiants (nom d'utilisateur et mot de passe) sont encodés en Base64 et ajoutés à l'en-tête HTTP Authorization. ► Token d'accès: Un jeton est émis après une authentification réussie. Ce token est ensuite envoyé avec chaque requête. ▪ Exemple: OAuth 2.0: Un protocole d'autorisation déléguée, souvent utilisé pour l'authentification tierce. ► Authentification basée sur les certificats: Le client présente un certificat numérique signé par une autorité de certification. 27 De nombreuses options pour travailler avec les API REST - curl :- Application de ligne de commande Linux - Postman: Plugin et application pour le navigateur Chrome - Requests : Bibliothèque Python pour la création de scripts 28 Requests 29 Comment fonctionne Requests ? ► Simuler une requête HTTP comme si vous utilisiez un navigateur. Voici un exemple simple pour faire une requête GET à une API : ► Exemple: import requests response = requests.get('https://api.exemple.com/users') if response.status_code == 200: data = response.json() 30 print(data) else: Exemple: requests import requests data = {'name': 'Mrani', 'email': '[email protected]'} headers = {'Content-Type': 'application/json'} response = requests.post('https://api.exemple.com/users', json=data, headers=headers) 31 Principales fonctionnalités de Requests : ► Méthodes HTTP: GET, POST, PUT, DELETE, HEAD, OPTIONS ► Gestion des headers: Personnalisation des headers HTTP ► Encodage des données: Possibilité d'envoyer des données dans différents formats (JSON, formulaire, etc.) ► Authentification: Support de différents mécanismes d'authentification (Basic, Digest, OAuth) 32 Curl 33 Curl ► En Bash: curl -X POST -d "name=Hantouti&[email protected]" https://api.example.com/users ► envoie une requête POST à l'API https://api.example.com/users pour créer un nouvel utilisateur. Les données à envoyer sont spécifiées dans le paramètre -d. 34 Curl 1. Requête 35 Curl 2. Response En-tete Corps de message 36 Recapitulatif ► Les API REST reposent sur le protocole HTTP. ► Demandes et réponses ► Comment les URI sont construits ► Méthodes, codes d'état et en-têtes utilisés avec les API REST ► Options d'authentification pour HTTP 37 Webographie ► https://openclassrooms.com/fr/courses/6573181-adoptez-les-api-rest-pour- vos-projets-web/6817216-identifiez-les-avantages-d-une-api-rest ► https://openclassrooms.com/fr/courses/1946386-comprendre-le- web/6874807-decouvrez-les-protocoles 39