Flashcards : Fondamentaux de FastAPI — 73 cartes

Toutes les cartes

1Question

Qu'est-ce que FastAPI ?

Réponse

Un framework web moderne et performant pour construire des API avec les annotations de type Python.

2Question

Comment FastAPI utilise-t-il les annotations de type ?

Réponse

Pour valider, convertir les données, générer la documentation et produire du code performant.

3Question

Quelle est la différence principale entre Django et Flask ?

Réponse

Django est mature et complet, Flask est un microframework minimaliste.

4Question

Quand choisir FastAPI plutôt que Django avec django-rest-framework ?

Réponse

Pour créer uniquement une API REST.

5Question

Quel est l'objectif principal du projet du cours ?

Réponse

Construire une API REST pour une application d’autopartage.

6Question

Quelles opérations l'application d’autopartage doit-elle permettre sur les voitures ?

Réponse

Créer, modifier et supprimer des voitures.

7Question

Comment sont stockées les données du projet ?

Réponse

Dans une base de données via des modèles SQLModel.

8Question

Quels sujets techniques le cours aborde-t-il ?

Réponse

OAuth, pages HTML, formulaires, cookies, en-têtes, middleware, tests unitaires et déploiement.

9Question

Quelles connaissances sont nécessaires pour suivre le cours ?

Réponse

Bases de Python, HTTP, API REST et bases relationnelles.

10Question

Quelles notions de Python sont indispensables pour ce cours ?

Réponse

Fonctions, classes, dictionnaires et listes.

11Question

Quelles versions de Python FastAPI supporte-t-il ?

Réponse

Python 3.8 et versions ultérieures.

12Question

Quel outil est recommandé pour le travail pratique du cours ?

Réponse

Un éditeur de code comme PyCharm ou Visual Studio Code.

13Question

Quelles sont les étapes pour créer un projet FastAPI ?

Réponse

Créer un environnement virtuel, installer FastAPI, créer un fichier Python, instancier FastAPI.

14Question

Quelle commande installe FastAPI avec toutes ses dépendances ?

Réponse

python -m pip install "fastapi[all]"

15Question

Que représente l'objet créé par FastAPI() ?

Réponse

L'application ou le serveur REST du projet.

16Question

Qu'est-ce qu'une opération de chemin en FastAPI ?

Réponse

Une fonction liée à une URL et une méthode HTTP via un décorateur.

17Question

Quelle commande lance FastAPI en mode développement ?

Réponse

fastapi dev carsharing.py

18Question

Pourquoi utiliser fastapi run en production plutôt que le mode dev ?

Réponse

Pour des raisons de sécurité et de performance.

19Question

Quelle URL FastAPI utilise-t-il pour la documentation interactive ?

Réponse

/docs

20Question

Quelle URL fournit la spécification OpenAPI lisible par machine ?

Réponse

/openapi.json

21Question

Quel serveur reçoit la requête HTTP avant FastAPI ?

Réponse

Uvicorn

22Question

Que fait FastAPI après avoir reçu une requête HTTP ?

Réponse

Il recherche l’opération associée au chemin et à la méthode.

23Question

Que permet de faire la page /docs avec « Try it out » ?

Réponse

Exécuter une opération.

24Question

Quel statut HTTP renvoie l’opération d’accueil en cas de succès ?

Réponse

Le statut HTTP 200.

25Question

Qu'est-ce qu'un paramètre de requête dans une URL ?

Réponse

Une valeur transmise dans l’URL après un point d’interrogation.

26Question

Qu'est-ce qu'un paramètre de chemin dans une URL FastAPI ?

Réponse

Une valeur intégrée à l’URL entre accolades dans le décorateur.

27Question

Quelle est la règle par défaut pour les paramètres de requête ?

Réponse

Ils sont obligatoires par défaut.

28Question

Comment rendre un paramètre de requête optionnel ?

Réponse

En lui donnant une valeur par défaut comme None.

29Question

Comment FastAPI convertit-il les valeurs textuelles reçues dans l’URL ?

Réponse

Il utilise les annotations de type pour convertir et valider.

30Question

Comment annoter un paramètre optionnel pouvant être une chaîne ou None ?

Réponse

Avec l’opérateur pipe : str | None.

31Question

Quelle annotation utiliser pour un paramètre entier optionnel ?

Réponse

int | None.

32Question

Où sont visibles les annotations de type des paramètres ?

Réponse

Dans la documentation générée et la spécification openapi.json.

33Question

Que fait un point d’arrêt dans PyCharm ou Visual Studio Code ?

Réponse

Il suspend l’exécution sur une ligne pour inspecter les variables.

34Question

Que fait la commande Step Over lors du débogage ?

Réponse

Elle exécute une seule ligne avant de suspendre à nouveau.

35Question

Quel type a un identifiant reçu depuis l’URL sans annotation int ?

Réponse

C’est une chaîne de caractères.

36Question

Quel type ont les identifiants stockés dans les données automobiles ?

Réponse

Ce sont des entiers.

37Question

Pourquoi la comparaison d’un identifiant URL sans annotation int avec les données automobiles est-elle toujours fausse ?

Réponse

Parce que les types sont différents, chaîne versus entier.

38Question

Quand doit-on déclarer une opération de chemin avec async def ?

Réponse

Lorsqu’elle utilise une bibliothèque tierce nécessitant await.

39Question

Comment déclarer une opération utilisant une bibliothèque sans support asynchrone ?

Réponse

Elle doit généralement être déclarée avec def.

40Question

Quelle forme de fonction est recommandée si on ne sait pas quoi choisir ?

Réponse

Il est recommandé d’utiliser une fonction normale avec def.

41Question

FastAPI peut-il mélanger des fonctions def et async def ?

Réponse

Oui, dans une même application.

42Question

Comment sont simulées les premières données automobiles ?

Réponse

Par une liste de dictionnaires représentant chaque voiture.

43Question

Que renvoie l'opération GET /api/cars ?

Réponse

L'ensemble des voitures disponibles dans la liste de données.

44Question

Quel est le premier filtre appliqué lors du filtrage des voitures ?

Réponse

Le filtre de taille s, m ou l lorsqu'il est fourni.

45Question

Quel filtre est appliqué après celui de la taille lors du filtrage ?

Réponse

Le filtre du nombre de portes, éventuellement.

46Question

Pourquoi faut-il annoter en int les valeurs reçues d'une URL ?

Réponse

Parce qu'elles sont textuelles même si elles représentent un nombre.

47Question

Quelle différence principale existe entre un paramètre de requête et un paramètre de chemin ?

Réponse

Un paramètre de requête peut être optionnel, un paramètre de chemin ne peut pas.

48Question

Comment autoriser une valeur absente pour un champ en Python 3.10+ ?

Réponse

En typant le champ comme une union avec None, par exemple str | None.

49Question

Que fait FastAPI lors d'une requête vers /api/cars/5 ?

Réponse

Il extrait la valeur 5 de l'URL et la transmet au paramètre de chemin id.

50Question

Que doit faire l'opération si la voiture demandée n'existe pas ?

Réponse

Elle doit lever une HTTPException avec le statut 404.

51Question

Qu'est-ce qu'un modèle Pydantic ?

Réponse

Une classe héritant de BaseModel déclarant champs, types et valeurs par défaut.

52Question

Que fait la création d'un objet Pydantic avec arguments nommés ?

Réponse

Elle construit l'objet, vérifie les champs obligatoires et prépare un objet imprimable.

53Question

Quand un champ Pydantic est-il obligatoire ?

Réponse

Lorsqu'il n'a pas de valeur par défaut.

54Question

Que rend un champ Pydantic avec une valeur par défaut ?

Réponse

Il le rend facultatif lors de la construction de l'objet.

55Question

Comment Pydantic traite-t-il la conversion de types ?

Réponse

Il convertit automatiquement si possible, sinon il produit une erreur de validation.

56Question

Donnez un exemple de conversion automatique par Pydantic.

Réponse

Les chaînes représentant des nombres sont converties en entiers.

57Question

Quels utilitaires fournissent les modèles Pydantic ?

Réponse

Ils convertissent les objets en JSON, dictionnaires ou chaînes.

58Question

Que fait la fonction load_db avec cars.json ?

Réponse

Elle ouvre cars.json et charge une liste de dictionnaires avec json.load.

59Question

Comment load_db transforme-t-elle chaque dictionnaire en objet Car ?

Réponse

Elle utilise Car.model_validate pour la transformation.

60Question

Quelles contraintes impose un fichier JSON sur les guillemets ?

Réponse

Il doit utiliser des guillemets doubles pour les chaînes.

61Question

Pourquoi un fichier JSON ne doit-il pas contenir de virgule finale ?

Réponse

Parce que la virgule finale n'est pas autorisée en JSON.

62Question

Que fait la fonction save_db avec les objets avant d'écrire dans cars.json ?

Réponse

Elle convertit chaque objet en dictionnaire.

63Question

Comment save_db rend-elle le fichier JSON lisible ?

Réponse

Elle utilise json.dump avec indent=4.

64Question

Pourquoi le stockage direct d'objets dans un fichier JSON n'est-il pas fiable en production ?

Réponse

Parce que c'est une simulation simple de base de données non fiable.

65Question

Que fait l'appel à load_db au démarrage de l'application ?

Réponse

Il recharge les voitures du fichier JSON dans la structure FastAPI.

66Question

À quoi sert la méthode HTTP GET en REST ?

Réponse

À récupérer une ressource sans effet de bord.

67Question

Quelle méthode HTTP REST sert généralement à créer une ressource ?

Réponse

POST sert généralement à créer une ressource dans une collection.

68Question

Quelle méthode HTTP REST sert à modifier une ressource identifiée ?

Réponse

PUT sert à modifier une ressource identifiée.

69Question

Quelle méthode HTTP REST sert à supprimer une ressource ?

Réponse

DELETE sert à supprimer une ressource.

70Question

Comment le client crée-t-il une voiture avec POST en REST ?

Réponse

Il envoie les données dans le corps vers l’URL de la collection `/api/cars`.

71Question

Quelle URL utilise le client pour modifier une voiture avec PUT ?

Réponse

L’URL de la voiture avec son identifiant.

72Question

Que renvoie une suppression réussie en REST ?

Réponse

Le statut 204 No Content avec un corps vide.

73Question

Quel statut HTTP indique qu’une voiture à supprimer est inexistante ?

Réponse

Le statut 404 HTTPException.

Teste-toi avec le QCM

Teste tes connaissances avec un QCM de 44 questions sur 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 ?

Faire le QCM →

Consultez la fiche

Révisez le cours complet dans la fiche de révision de Fondamentaux de FastAPI.

Voir la fiche →

Cours similaires

Crée tes propres flashcards

Importe ton cours et l'IA génère des flashcards en 30 secondes.

Générateur de flashcards