Skip to content

Latest commit

 

History

History
112 lines (83 loc) · 4.13 KB

File metadata and controls

112 lines (83 loc) · 4.13 KB

FastAPI and GraphQL

API GraphQL com FastAPI e Strawberry

Python FastAPI GraphQL MongoDB Redis SQLite Docker

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