You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

3.8 KiB

GraphQL

Comme FastAPI est basé sur la norme ASGI, il est très facile d'intégrer toute bibliothèque GraphQL également compatible avec ASGI.

Vous pouvez combiner des chemins d'accès FastAPI classiques avec GraphQL dans la même application.

/// tip | Astuce

GraphQL résout des cas d'utilisation très spécifiques.

Il présente des avantages et des inconvénients par rapport aux API web classiques.

Assurez-vous d'évaluer si les bénéfices pour votre cas d'utilisation compensent les inconvénients. 🤓

///

Bibliothèques GraphQL

Voici quelques bibliothèques GraphQL qui prennent en charge ASGI. Vous pouvez les utiliser avec FastAPI :

GraphQL avec Strawberry

Si vous avez besoin ou souhaitez travailler avec GraphQL, Strawberry est la bibliothèque recommandée car sa conception est la plus proche de celle de FastAPI, tout est basé sur des annotations de type.

Selon votre cas d'utilisation, vous pourriez préférer une autre bibliothèque, mais si vous me le demandiez, je vous suggérerais probablement d'essayer Strawberry.

Voici un petit aperçu de la manière dont vous pouvez intégrer Strawberry avec FastAPI :

{* ../../docs_src/graphql_/tutorial001_py310.py hl[3,22,25] *}

Vous pouvez en apprendre davantage sur Strawberry dans la documentation de Strawberry.

Et également la documentation sur Strawberry avec FastAPI.

Ancien GraphQLApp de Starlette

Les versions précédentes de Starlette incluaient une classe GraphQLApp pour s'intégrer à Graphene.

Elle a été dépréciée dans Starlette, mais si vous avez du code qui l'utilisait, vous pouvez facilement migrer vers starlette-graphene3, qui couvre le même cas d'utilisation et propose une interface presque identique.

/// tip | Astuce

Si vous avez besoin de GraphQL, je vous recommande tout de même de regarder Strawberry, car il est basé sur des annotations de type plutôt que sur des classes et types personnalisés.

///

En savoir plus

Vous pouvez en apprendre davantage sur GraphQL dans la documentation officielle de GraphQL.

Vous pouvez également en lire davantage sur chacune des bibliothèques décrites ci-dessus via leurs liens.