Documentation d'API interactive et interface web d'exploration. Comme le framework est basé sur OpenAPI, de nombreuses options sont disponibles. Deux d'entre-elles sont incluses par défaut.
Swagger UI, propose une documentation interactive. Vous permet de directement tester l'API depuis votre navigateur.
Une autre documentation d'API est fournie par ReDoc.
Tout est basé sur la déclaration de type standard de Python 3.8 (grâce à Pydantic). Pas de nouvelles syntaxes à apprendre. Juste du Python standard et moderne.
Si vous souhaitez un rappel de 2 minutes sur l'utilisation des types en Python (même si vous ne comptez pas utiliser FastAPI), jetez un oeil au tutoriel suivant: Python Types.
Vous écrivez du python standard avec des annotations de types:
fromdatetimeimportdatefrompydanticimportBaseModel# Déclare une variable comme étant une str# et profitez de l'aide de votre IDE dans cette fonctiondefmain(user_id:str):returnuser_id# Un modèle PydanticclassUser(BaseModel):id:intname:strjoined:date
Utilise les clés et valeurs du dictionnaire second_user_data directement comme des arguments clé-valeur. C'est équivalent à: User(id=4, name="Mary", joined="2018-11-30")
Tout le framework a été conçu pour être facile et intuitif d'utilisation, toutes les décisions de design ont été testées sur de nombreux éditeurs avant même de commencer le développement final afin d'assurer la meilleure expérience de développement possible.
Vous aurez des propositions de complétion que vous n'auriez jamais imaginées. Par exemple la clé prix dans le corps d'un document JSON (qui est peut-être imbriqué) venant d'une requête.
Plus jamais vous ne vous tromperez en tapant le nom d'une clé, vous ne ferez des aller-retour entre votre code et la documentation ou vous ne scrollerez de haut en bas afin d'enfin savoir si vous devez taper username ou user_name.
Des valeurs par défaut sont définies pour tout, des configurations optionnelles sont présentent partout. Tous ces paramètres peuvent être ajustés afin de faire ce que vous voulez et définir l'API dont vous avez besoin.
Ou, en d'autres termes, pas besoin d'eux, importez le code que vous voulez et utilisez le.
Tout intégration est conçue pour être si simple à utiliser (avec des dépendances) que vous pouvez créer un "plug-in" pour votre application en deux lignes de code utilisant la même syntaxe que celle de vos path operations
FastAPI est complètement compatible (et basé sur) Starlette. Le code utilisant Starlette que vous ajouterez fonctionnera donc aussi.
En fait, FastAPI est un sous composant de Starlette. Donc, si vous savez déjà comment utiliser Starlette, la plupart des fonctionnalités fonctionneront de la même manière.
Avec FastAPI vous aurez toutes les fonctionnalités de Starlette (FastAPI est juste Starlette sous stéroïdes):
FastAPI est totalement compatible avec (et basé sur) Pydantic. Le code utilisant Pydantic que vous ajouterez fonctionnera donc aussi.
Inclus des librairies externes basées, aussi, sur Pydantic, servent d'ORMs, ODMs pour les bases de données.
Cela signifie aussi que, dans la plupart des cas, vous pouvez fournir l'objet reçu d'une requête directement à la base de données, comme tout est validé automatiquement.
Inversement, dans la plupart des cas vous pourrez juste envoyer l'objet récupéré de la base de données directement au client
Avec FastAPI vous aurez toutes les fonctionnalités de Pydantic (comme FastAPI est basé sur Pydantic pour toutes les manipulations de données):
Pas de prise de tête:
Pas de nouveau langage de définition de schéma à apprendre.
Si vous connaissez le typage en python vous savez comment utiliser Pydantic.
Aide votre IDE/linter/cerveau:
Parce que les structures de données de pydantic consistent seulement en une instance de classe que vous définissez; l'auto-complétion, le linting, mypy et votre intuition devrait être largement suffisante pour valider vos données.
Valide les structures complexes:
Utilise les modèles hiérarchique de Pydantic, le typage Python pour les Lists, Dict, etc.
Et les validateurs permettent aux schémas de données complexes d'être clairement et facilement définis, validés et documentés sous forme d'un schéma JSON.
Vous pouvez avoir des objets JSON fortement imbriqués tout en ayant, pour chacun, de la validation et des annotations.
Renouvelable:
Pydantic permet de définir de nouveaux types de données ou vous pouvez étendre la validation avec des méthodes sur un modèle décoré avec le décorateur de validation