Qu'est-ce que FastAPI ?
Un framework web moderne et performant pour construire des API avec les annotations de type Python.
Comment FastAPI utilise-t-il les annotations de type ?
Pour valider, convertir les données, générer la documentation et produire du code performant.
Quelle est la différence principale entre Django et Flask ?
Django est mature et complet, Flask est un microframework minimaliste.
Quand choisir FastAPI plutôt que Django avec django-rest-framework ?
Pour créer uniquement une API REST.
Quel est l'objectif principal du projet du cours ?
Construire une API REST pour une application d’autopartage.
Quelles opérations l'application d’autopartage doit-elle permettre sur les voitures ?
Créer, modifier et supprimer des voitures.
Comment sont stockées les données du projet ?
Dans une base de données via des modèles SQLModel.
Quels sujets techniques le cours aborde-t-il ?
OAuth, pages HTML, formulaires, cookies, en-têtes, middleware, tests unitaires et déploiement.
Quelles connaissances sont nécessaires pour suivre le cours ?
Bases de Python, HTTP, API REST et bases relationnelles.
Quelles notions de Python sont indispensables pour ce cours ?
Fonctions, classes, dictionnaires et listes.
Quelles versions de Python FastAPI supporte-t-il ?
Python 3.8 et versions ultérieures.
Quel outil est recommandé pour le travail pratique du cours ?
Un éditeur de code comme PyCharm ou Visual Studio Code.
Quelles sont les étapes pour créer un projet FastAPI ?
Créer un environnement virtuel, installer FastAPI, créer un fichier Python, instancier FastAPI.
Quelle commande installe FastAPI avec toutes ses dépendances ?
python -m pip install "fastapi[all]"
Que représente l'objet créé par FastAPI() ?
L'application ou le serveur REST du projet.
Qu'est-ce qu'une opération de chemin en FastAPI ?
Une fonction liée à une URL et une méthode HTTP via un décorateur.
Quelle commande lance FastAPI en mode développement ?
fastapi dev carsharing.py
Pourquoi utiliser fastapi run en production plutôt que le mode dev ?
Pour des raisons de sécurité et de performance.
Quelle URL FastAPI utilise-t-il pour la documentation interactive ?
/docs
Quelle URL fournit la spécification OpenAPI lisible par machine ?
/openapi.json
Quel serveur reçoit la requête HTTP avant FastAPI ?
Uvicorn
Que fait FastAPI après avoir reçu une requête HTTP ?
Il recherche l’opération associée au chemin et à la méthode.
Que permet de faire la page /docs avec « Try it out » ?
Exécuter une opération.
Quel statut HTTP renvoie l’opération d’accueil en cas de succès ?
Le statut HTTP 200.
Qu'est-ce qu'un paramètre de requête dans une URL ?
Une valeur transmise dans l’URL après un point d’interrogation.
Qu'est-ce qu'un paramètre de chemin dans une URL FastAPI ?
Une valeur intégrée à l’URL entre accolades dans le décorateur.
Quelle est la règle par défaut pour les paramètres de requête ?
Ils sont obligatoires par défaut.
Comment rendre un paramètre de requête optionnel ?
En lui donnant une valeur par défaut comme None.
Comment FastAPI convertit-il les valeurs textuelles reçues dans l’URL ?
Il utilise les annotations de type pour convertir et valider.
Comment annoter un paramètre optionnel pouvant être une chaîne ou None ?
Avec l’opérateur pipe : str | None.
Quelle annotation utiliser pour un paramètre entier optionnel ?
int | None.
Où sont visibles les annotations de type des paramètres ?
Dans la documentation générée et la spécification openapi.json.
Que fait un point d’arrêt dans PyCharm ou Visual Studio Code ?
Il suspend l’exécution sur une ligne pour inspecter les variables.
Que fait la commande Step Over lors du débogage ?
Elle exécute une seule ligne avant de suspendre à nouveau.
Quel type a un identifiant reçu depuis l’URL sans annotation int ?
C’est une chaîne de caractères.
Quel type ont les identifiants stockés dans les données automobiles ?
Ce sont des entiers.
Pourquoi la comparaison d’un identifiant URL sans annotation int avec les données automobiles est-elle toujours fausse ?
Parce que les types sont différents, chaîne versus entier.
Quand doit-on déclarer une opération de chemin avec async def ?
Lorsqu’elle utilise une bibliothèque tierce nécessitant await.
Comment déclarer une opération utilisant une bibliothèque sans support asynchrone ?
Elle doit généralement être déclarée avec def.
Quelle forme de fonction est recommandée si on ne sait pas quoi choisir ?
Il est recommandé d’utiliser une fonction normale avec def.
FastAPI peut-il mélanger des fonctions def et async def ?
Oui, dans une même application.
Comment sont simulées les premières données automobiles ?
Par une liste de dictionnaires représentant chaque voiture.
Que renvoie l'opération GET /api/cars ?
L'ensemble des voitures disponibles dans la liste de données.
Quel est le premier filtre appliqué lors du filtrage des voitures ?
Le filtre de taille s, m ou l lorsqu'il est fourni.
Quel filtre est appliqué après celui de la taille lors du filtrage ?
Le filtre du nombre de portes, éventuellement.
Pourquoi faut-il annoter en int les valeurs reçues d'une URL ?
Parce qu'elles sont textuelles même si elles représentent un nombre.
Quelle différence principale existe entre un paramètre de requête et un paramètre de chemin ?
Un paramètre de requête peut être optionnel, un paramètre de chemin ne peut pas.
Comment autoriser une valeur absente pour un champ en Python 3.10+ ?
En typant le champ comme une union avec None, par exemple str | None.
Que fait FastAPI lors d'une requête vers /api/cars/5 ?
Il extrait la valeur 5 de l'URL et la transmet au paramètre de chemin id.
Que doit faire l'opération si la voiture demandée n'existe pas ?
Elle doit lever une HTTPException avec le statut 404.
Qu'est-ce qu'un modèle Pydantic ?
Une classe héritant de BaseModel déclarant champs, types et valeurs par défaut.
Que fait la création d'un objet Pydantic avec arguments nommés ?
Elle construit l'objet, vérifie les champs obligatoires et prépare un objet imprimable.
Quand un champ Pydantic est-il obligatoire ?
Lorsqu'il n'a pas de valeur par défaut.
Que rend un champ Pydantic avec une valeur par défaut ?
Il le rend facultatif lors de la construction de l'objet.
Comment Pydantic traite-t-il la conversion de types ?
Il convertit automatiquement si possible, sinon il produit une erreur de validation.
Donnez un exemple de conversion automatique par Pydantic.
Les chaînes représentant des nombres sont converties en entiers.
Quels utilitaires fournissent les modèles Pydantic ?
Ils convertissent les objets en JSON, dictionnaires ou chaînes.
Que fait la fonction load_db avec cars.json ?
Elle ouvre cars.json et charge une liste de dictionnaires avec json.load.
Comment load_db transforme-t-elle chaque dictionnaire en objet Car ?
Elle utilise Car.model_validate pour la transformation.
Quelles contraintes impose un fichier JSON sur les guillemets ?
Il doit utiliser des guillemets doubles pour les chaînes.
Pourquoi un fichier JSON ne doit-il pas contenir de virgule finale ?
Parce que la virgule finale n'est pas autorisée en JSON.
Que fait la fonction save_db avec les objets avant d'écrire dans cars.json ?
Elle convertit chaque objet en dictionnaire.
Comment save_db rend-elle le fichier JSON lisible ?
Elle utilise json.dump avec indent=4.
Pourquoi le stockage direct d'objets dans un fichier JSON n'est-il pas fiable en production ?
Parce que c'est une simulation simple de base de données non fiable.
Que fait l'appel à load_db au démarrage de l'application ?
Il recharge les voitures du fichier JSON dans la structure FastAPI.
À quoi sert la méthode HTTP GET en REST ?
À récupérer une ressource sans effet de bord.
Quelle méthode HTTP REST sert généralement à créer une ressource ?
POST sert généralement à créer une ressource dans une collection.
Quelle méthode HTTP REST sert à modifier une ressource identifiée ?
PUT sert à modifier une ressource identifiée.
Quelle méthode HTTP REST sert à supprimer une ressource ?
DELETE sert à supprimer une ressource.
Comment le client crée-t-il une voiture avec POST en REST ?
Il envoie les données dans le corps vers l’URL de la collection `/api/cars`.
Quelle URL utilise le client pour modifier une voiture avec PUT ?
L’URL de la voiture avec son identifiant.
Que renvoie une suppression réussie en REST ?
Le statut 204 No Content avec un corps vide.
Quel statut HTTP indique qu’une voiture à supprimer est inexistante ?
Le statut 404 HTTPException.
Test your knowledge with 44 questions on Fondamentaux de FastAPI.
1. Quel type de logiciel FastAPI permet-il principalement de construire ?
2. Quel rôle les annotations de type jouent-elles fortement dans FastAPI ?
Review the complete course in the revision sheet for Fondamentaux de FastAPI.
See revision sheet →Import your course and AI generates flashcards in 30 seconds.
Flashcard generator