Flashcards: Fondamentaux de FastAPI — 73 cards

All cards

1Question

Qu'est-ce que FastAPI ?

Answer

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 ?

Answer

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 ?

Answer

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

4Question

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

Answer

Pour créer uniquement une API REST.

5Question

Quel est l'objectif principal du projet du cours ?

Answer

Construire une API REST pour une application d’autopartage.

6Question

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

Answer

Créer, modifier et supprimer des voitures.

7Question

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

Answer

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

8Question

Quels sujets techniques le cours aborde-t-il ?

Answer

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

9Question

Quelles connaissances sont nécessaires pour suivre le cours ?

Answer

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

10Question

Quelles notions de Python sont indispensables pour ce cours ?

Answer

Fonctions, classes, dictionnaires et listes.

11Question

Quelles versions de Python FastAPI supporte-t-il ?

Answer

Python 3.8 et versions ultérieures.

12Question

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

Answer

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

13Question

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

Answer

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

14Question

Quelle commande installe FastAPI avec toutes ses dépendances ?

Answer

python -m pip install "fastapi[all]"

15Question

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

Answer

L'application ou le serveur REST du projet.

16Question

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

Answer

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

17Question

Quelle commande lance FastAPI en mode développement ?

Answer

fastapi dev carsharing.py

18Question

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

Answer

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

19Question

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

Answer

/docs

20Question

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

Answer

/openapi.json

21Question

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

Answer

Uvicorn

22Question

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

Answer

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 » ?

Answer

Exécuter une opération.

24Question

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

Answer

Le statut HTTP 200.

25Question

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

Answer

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 ?

Answer

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 ?

Answer

Ils sont obligatoires par défaut.

28Question

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

Answer

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

29Question

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

Answer

Il utilise les annotations de type pour convertir et valider.

30Question

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

Answer

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

31Question

Quelle annotation utiliser pour un paramètre entier optionnel ?

Answer

int | None.

32Question

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

Answer

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 ?

Answer

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

34Question

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

Answer

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

35Question

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

Answer

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

36Question

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

Answer

Ce sont des entiers.

37Question

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

Answer

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 ?

Answer

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

39Question

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

Answer

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 ?

Answer

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

41Question

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

Answer

Oui, dans une même application.

42Question

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

Answer

Par une liste de dictionnaires représentant chaque voiture.

43Question

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

Answer

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

44Question

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

Answer

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 ?

Answer

Le filtre du nombre de portes, éventuellement.

46Question

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

Answer

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 ?

Answer

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+ ?

Answer

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 ?

Answer

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 ?

Answer

Elle doit lever une HTTPException avec le statut 404.

51Question

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

Answer

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 ?

Answer

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

53Question

Quand un champ Pydantic est-il obligatoire ?

Answer

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

54Question

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

Answer

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

55Question

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

Answer

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

56Question

Donnez un exemple de conversion automatique par Pydantic.

Answer

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

57Question

Quels utilitaires fournissent les modèles Pydantic ?

Answer

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

58Question

Que fait la fonction load_db avec cars.json ?

Answer

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 ?

Answer

Elle utilise Car.model_validate pour la transformation.

60Question

Quelles contraintes impose un fichier JSON sur les guillemets ?

Answer

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

61Question

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

Answer

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 ?

Answer

Elle convertit chaque objet en dictionnaire.

63Question

Comment save_db rend-elle le fichier JSON lisible ?

Answer

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 ?

Answer

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 ?

Answer

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

66Question

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

Answer

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

67Question

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

Answer

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

68Question

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

Answer

PUT sert à modifier une ressource identifiée.

69Question

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

Answer

DELETE sert à supprimer une ressource.

70Question

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

Answer

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 ?

Answer

L’URL de la voiture avec son identifiant.

72Question

Que renvoie une suppression réussie en REST ?

Answer

Le statut 204 No Content avec un corps vide.

73Question

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

Answer

Le statut 404 HTTPException.

Test yourself with the quiz

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 ?

Take the quiz →

Read the revision sheet

Review the complete course in the revision sheet for Fondamentaux de FastAPI.

See revision sheet →

Similar courses

Create your own flashcards

Import your course and AI generates flashcards in 30 seconds.

Flashcard generator