Ariadne é uma biblioteca Python para implementação de servidores GraphQL.
Esquema primeiro: Ariadne permite que os desenvolvedores Python usem a abordagem do esquema primeiro para a implementação da API. Esta é a abordagem líder usada pela comunidade GraphQL e apoiada por dezenas de ferramentas de desenvolvedor front-end e backend, exemplos e recursos de aprendizagem. Ariadne disponibiliza tudo isso imediatamente para você e demais membros de sua equipe.
Simples: Ariadne oferece uma API pequena, consistente e fácil de memorizar que permite que os desenvolvedores se concentrem nos problemas de negócios, não nos clichês.
Aberto: Ariadne foi projetado para ser modular e aberto para personalização. Se você estiver faltando ou insatisfeito com alguma coisa, estenda ou troque facilmente pelo seu próprio.
A documentação está disponível aqui.
API simples, rápida de aprender e fácil de memorizar.
Compatibilidade com GraphQL.js versão 15.5.1.
Consultas, mutações e tipos de entrada.
Resolvedores assíncronos e execução de consultas.
Assinaturas.
Escalares, enums e diretivas de esquema personalizados.
Uniões e interfaces.
Carregamentos de arquivos.
Definindo esquema usando strings SDL.
Carregando esquema de arquivos .graphql
, .gql
e .graphqls
.
Middleware WSGI para implementação de GraphQL em sites existentes.
Extensões Apollo Tracing e OpenTracing para monitoramento de API.
Mapeamento de resolvedores automáticos opcionais entre camelCase
e snake_case
e um decorador de função @convert_kwargs_to_snake_case
para converter camelCase
kwargs em snake_case
.
Servidor de desenvolvimento síncrono simples integrado para experimentação rápida com GraphQL e GraphQL Playground.
Suporte para extensão Apollo GraphQL para Visual Studio Code.
Validação de sintaxe GraphQL por meio da função auxiliar gql()
. Também fornece colorização se a extensão Apollo GraphQL estiver instalada.
Nenhum estado global ou registro de objeto, suporte para várias APIs GraphQL na mesma base de código com reutilização explícita de tipo.
Suporte para Apollo Federation
.
Ariadne pode ser instalado com pip:
pip instalar ariadne
Ariadne requer Python 3.7 ou superior.
O exemplo a seguir cria uma API que define o tipo Person
e people
retornando uma lista de duas pessoas. Ele também inicia um servidor de desenvolvimento local com GraphQL Playground disponível no endereço http://127.0.0.1:8000
.
Comece instalando o uvicorn, um servidor ASGI que usaremos para servir a API:
pip instalar uvicórnio
Em seguida, crie um arquivo example.py
para seu aplicativo de exemplo:
from ariadne import ObjectType, QueryType, gql, make_executable_schemafrom ariadne.asgi import GraphQL# Defina tipos usando a linguagem de definição de esquema (https://graphql.org/learn/schema/)# O agrupamento de string na função gql fornece validação e melhor erro tracebacktype_defs = gql (""" type Query { people: [Person!]! } type Person { firstName: String lastName: String age: Int fullName: String }""")# Mapeie funções de resolução para campos de consulta usando QueryTypequery = QueryType()# Resolvedores são simples python [email protected]("people")def resolve_people(*_):return [ {"primeiroNome": "John", "sobrenome": "Doe", "idade": 21}, {"primeiroNome": "Bob", "sobrenome": "Boberson", "idade": 24}, ]# Mapeie funções de resolução para campos de tipo personalizado usando ObjectTypeperson = ObjectType("Person")@person.field("fullName")def resolve_person_fullname(person, *_):return "%s %s" % (person["firstName" ], person["lastName"])# Crie um esquema GraphQL executável = make_executable_schema(type_defs, query, person)# Crie um aplicativo ASGI usando o esquema, executando no modo de depuraçãoapp = GraphQL(schema, debug=True)
Finalmente execute o servidor:
exemplo de uvicórnio:app
Para mais guias e exemplos, consulte a documentação.
Aceitamos contribuições para Ariadne! Se você encontrou um bug ou problema, sinta-se à vontade para usar os problemas do GitHub. Se você tiver alguma dúvida ou feedback, não hesite em nos contatar nas discussões do GitHub.
Para orientação e instruções, consulte CONTRIBUTING.md.
O site e os documentos têm seu próprio repositório GitHub: mirumee/ariadne-website
Certifique-se também de seguir @AriadneGraphQL no Twitter para obter as últimas atualizações, notícias e reflexões aleatórias!
Feito com ❤️ por Mirumee Software [email protected]