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.5 KiB

GraphQL

Como o FastAPI é baseado no padrão ASGI, é muito fácil integrar qualquer biblioteca GraphQL também compatível com ASGI.

Você pode combinar operações de rota normais do FastAPI com GraphQL na mesma aplicação.

/// tip | Dica

GraphQL resolve alguns casos de uso muito específicos.

Ele tem vantagens e desvantagens quando comparado a web APIs comuns.

Certifique-se de avaliar se os benefícios para o seu caso de uso compensam as desvantagens. 🤓

///

Bibliotecas GraphQL

Aqui estão algumas das bibliotecas GraphQL que têm suporte ASGI. Você pode usá-las com FastAPI:

GraphQL com Strawberry

Se você precisar ou quiser trabalhar com GraphQL, Strawberry é a biblioteca recomendada pois tem o design mais próximo ao design do FastAPI, ela é toda baseada em type annotations.

Dependendo do seu caso de uso, você pode preferir usar uma biblioteca diferente, mas se você me perguntasse, eu provavelmente sugeriria que você experimentasse o Strawberry.

Aqui está uma pequena prévia de como você poderia integrar Strawberry com FastAPI:

{* ../../docs_src/graphql/tutorial001.py hl[3,22,25:26] *}

Você pode aprender mais sobre Strawberry na documentação do Strawberry.

E também na documentação sobre Strawberry com FastAPI.

Antigo GraphQLApp do Starlette

Versões anteriores do Starlette incluiam uma classe GraphQLApp para integrar com Graphene.

Ela foi descontinuada do Starlette, mas se você tem código que a utilizava, você pode facilmente migrar para starlette-graphene3, que cobre o mesmo caso de uso e tem uma interface quase idêntica.

/// tip | Dica

Se você precisa de GraphQL, eu ainda recomendaria que você desse uma olhada no Strawberry, pois ele é baseado em type annotations em vez de classes e tipos personalizados.

///

Saiba Mais

Você pode aprender mais sobre GraphQL na documentação oficial do GraphQL.

Você também pode ler mais sobre cada uma das bibliotecas descritas acima em seus links.