Advanced Search
Search Results
90 total results found
Bienvenue au bar API-ritif 🍹
Tout au long de ce cours, nous allons fréquenter un établissement très particulier : API-ritif, le bar de l'école de dev. On n'y entre pas par la porte, mais par HTTP. L'adresse exacte du bar est donnée en cours. Consommation responsable : les cocktails d'AP...
curl, Bruno et Postman
Pour parler à une API, pas besoin d'écrire du code : des outils permettent d'envoyer des requêtes HTTP à la main. curl curl est l'outil en ligne de commande de référence. Il est installé par défaut sur Linux, macOS et Windows 10+. curl http://api-ritif.port...
TP : La chasse au trésor
Objectif Le barman d'API-ritif a caché un trésor quelque part dans son API. Pour le trouver, il faudra lire attentivement chaque réponse : codes de statut, headers, body… Rien n'est là par hasard. Chaque étape franchie vous donne un flag : il se trouve dans ...
Appeler une API avec requests
curl et Bruno, c'est bien pour explorer. Mais pour automatiser, il faut appeler l'API depuis du code. Les exemples sont donnés en Python, avec la bibliothèque requests. Prérequis Python 3 et la bibliothèque requests : pip install requests. Votre clé d'API n'a...
Pagination, erreurs, 401 et 429
Un script qui marche sur la première page, avec un serveur de bonne humeur, c'est facile. Un script robuste doit aussi gérer la pagination, les erreurs et un serveur qui demande de ralentir. La pagination Une API ne renvoie jamais une liste de 10 000 élément...
Les machines consomment aussi vos API
Jusqu'ici, les clients de nos API étaient des programmes écrits par des humains. Depuis l'arrivée des LLM, un nouveau type de client apparaît : l'IA elle-même. Un LLM qui utilise des outils Un modèle de langage ne fait que produire du texte. Pour agir sur le...
TP : Script de statistiques
Objectif Pendant la chasse au trésor, toute la promo a passé des commandes au bar. Le patron d'API-ritif veut maintenant des statistiques, et il compte sur vous. Vous allez compléter un script Python qui récupère les données par l'API et calcule des statistiqu...
Nommer les ressources et les routes
Une URL est la première chose qu'un développeur voit de votre API. Si elle est claire, il devine la suite. Si elle ne l'est pas, il ouvre la documentation… ou abandonne. Les règles Des noms, pas des verbes L'URL désigne une ressource. L'action, c'est la métho...
Filtres, tri et pagination
Une collection peut contenir des milliers d'éléments. Le client doit pouvoir n'en demander qu'une partie, dans l'ordre qui l'intéresse. Tout passe par les paramètres de query : la ressource reste la même, on ne change que la vue. Les filtres Un paramètre par ...
Versioning
Une API publiée a des clients que vous ne connaissez pas : des applications mobiles qui ne seront pas mises à jour avant des mois, des scripts oubliés sur un serveur, des intégrations de partenaires… Changer l'API peut tous les casser d'un coup. Ce qui casse,...
Les erreurs avec problem+json
Le code de statut dit qu'il y a une erreur. Le body doit dire laquelle, et comment la corriger. PlutĂ´t que d'inventer un format par API, il existe un standard : application/problem+json. Le format HTTP/1.1 409 Conflict Content-Type: application/problem+json...
Exercice : L'API du stagiaire de 2009
Objectif En rangeant la réserve du bar, le patron d'API-ritif a retrouvé une clé USB étiquetée « API v0 — NE PAS TOUCHER — Kévin, stage 2009 ». Elle contient la documentation de l'ancienne API du bar, toujours utilisée par la vieille caisse enregistreuse. Votr...
Lire un contrat OpenAPI
Pendant la chasse au trésor, vous avez découvert API-ritif à tâtons, en lisant les réponses une par une. Il existe une méthode plus reposante : lire son contrat. Qu'est-ce qu'un contrat d'API ? Un contrat décrit tout ce qu'une API sait faire, dans un format ...
Structure YAML et schémas
YAML en 30 secondes YAML est un format de données lisible, basé sur l'indentation (des espaces, jamais de tabulations). nom: Segfault Sunrise # une clé et une valeur prix: 9.5 # un nombre sans_alcool: false # un booléen tags...
Code-first ou design-first
Le contrat et le code doivent dire la même chose. Mais lequel écrit-on en premier ? Code-first On écrit le code, et le contrat est généré à partir de lui (annotations, types, décorateurs…). C'est ce que fait FastAPI : les types Python et les modèles Pydantic ...
Swagger UI, Redoc et Scalar
Un contrat en YAML, c'est précis mais austère. Des outils le transforment en une documentation agréable à lire, sans rien écrire de plus. Trois outils, un même contrat OutilPoints forts Swagger UILe classique. Chaque route est testable directement (Try it o...
Générer des clients
Un contrat OpenAPI est lisible par les machines. Elles peuvent donc écrire à votre place le code qui appelle l'API : c'est ce qu'on appelle un client ou un SDK. Avantages : plus besoin d'écrire les URL, les headers et la sérialisation à la main ; l'autocomplé...
Premiers pas avec FastAPI
Assez consommé : passons derrière le comptoir. Dans ce chapitre, on construit une API en Python avec FastAPI. C'est un framework « tout compris » : à partir de vos fonctions et de leurs types, il gère la validation des données (avec Pydantic) et génère tout se...
Routes, paramètres et body
On construit une mini carte de cocktails, stockée en mémoire. Elle disparaît au redémarrage du serveur : c'est volontaire, on se concentre sur HTTP. Tout le code de cette page s'ajoute dans le même fichier main.py, celui de la page précédente. Gardez fastapi d...
Validation et codes de retour
À la page précédente, FastAPI refusait déjà un prix en lettres ou un nom manquant, mais avec son propre format d'erreur. Et il acceptait un nom vide ou un prix négatif. Corrigeons tout ça. Règle n°1 d'une API : ne jamais faire confiance au client. Tout ce qui ...