Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

History

59 Commits

Repository files navigation

FastAPI and GraphQL

API GraphQL com FastAPI e Strawberry

PythonFastAPIGraphQLMongoDBRedisSQLiteDocker

Este projeto é uma API GraphQL simples construída com FastAPI e Strawberry, duas ferramentas poderosas do ecossistema Python. A API permite que os usuários consultem uma lista de itens, cada um contendo um ID, username, fullName, email, role, hashedPassword, disabled, verified, createdAt.

Sobre GraphQL

O GraphQL é uma linguagem de consulta para APIs que oferece flexibilidade ao cliente, permitindo solicitar exatamente os dados necessários. Diferentemente do REST, onde múltiplas rotas são usadas para diferentes recursos, o GraphQL utiliza uma única rota que pode retornar diversos tipos de dados, otimizando a comunicação entre cliente e servidor.

Sobre Strawberry

Strawberry é uma biblioteca de GraphQL para Python que utiliza anotações de tipo para criar APIs de maneira intuitiva e moderna. Ela se integra perfeitamente com o FastAPI, permitindo criar endpoints GraphQL com facilidade. O principal componente utilizado é o GraphQLRouter, que serve como ponto de entrada para as consultas GraphQL.

Benefícios do Projeto

  • Flexibilidade: Clientes podem consultar apenas os dados necessários, reduzindo o tráfego de rede.
  • Simplicidade: Com Strawberry e FastAPI, a configuração da API é direta e eficiente.
  • Escalabilidade: A estrutura GraphQL facilita a adição de novos tipos de dados sem alterar a lógica existente.

Versão: 1.2.14

Para mais informações sobre:

Tecnologias Utilizadas

  • FastAPI: Um framework moderno e rápido para construir APIs com Python.
  • Strawberry: Uma biblioteca para criar APIs GraphQL em Python.
  • Uvicorn: Um servidor ASGI para rodar a aplicação.

Pré-requisitos

Antes de começar, você precisa ter o Python 3.7 ou superior instalado em sua máquina. Você também deve ter o pip para instalar as dependências.

Instalação

 git clone https://github.com/Rodrigo-Kelven/FastAPI_GraphQL
cd FastAPI_GraphQL
pip install -r requirements.txt

Usando via docker

 docker build -t api_graphql .
docker run -p 8000:8000 api_graphql

Usando a API

A API GraphQL pode ser acessada em http://127.0.0.1:8000/api/v1/graphql. Você pode usar a interface GraphQL para fazer consultas.

-h## Exemplo de Consulta

Para obter todos os itens, você pode usar a seguinte consulta:

{
allUsers {
id
username
fullName
email
role
hashedPassword
disabled
verified
createdAt }
}

Resposta Esperada

A resposta para a consulta acima será semelhante a:

{
"data": {
"allUsers": [
{
"id": "61476a49-6f68-4ba0-998f-07196de68abe",
"username": "string",
"fullName": "string",
"email": "user@example.com",
"role": "Role.admin",
"hashedPassword": "$2b$12$SjQvK5W9nE5UW9PnDsMRxOXqaKVG8.GRqtVIL/5ZeiAV33c5SV2M.",
"disabled": false,
"verified": 0,
"createdAt": "2025-03-10T02:22:27"
}
]
}
}

Contribuições

Contribuições são bem-vindas! Se você tiver sugestões ou melhorias, sinta-se à vontade para abrir um issue ou enviar um pull request.;)

Autores

About

Este projeto é uma API GraphQL simples construída com FastAPI e Strawberry, duas ferramentas poderosas do ecossistema Python. A API permite que os usuários consultem uma lista de itens, cada um contendo um ID, username, fullName, email, role, hashedPassword, disabled, verified, createdAt.

Topics

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages