Ariadne es una biblioteca de Python para implementar servidores GraphQL.
Primero el esquema: Ariadne permite a los desarrolladores de Python utilizar un enfoque de primero el esquema para la implementación de API. Este es el enfoque líder utilizado por la comunidad GraphQL y respaldado por docenas de herramientas, ejemplos y recursos de aprendizaje para desarrolladores de frontend y backend. Ariadne pone todo esto a disposición de usted y de otros miembros de su equipo de inmediato.
Simple: Ariadne ofrece una API pequeña, coherente y fácil de memorizar que permite a los desarrolladores centrarse en los problemas empresariales, no en los textos repetitivos.
Abierto: Ariadne fue diseñada para ser modular y abierta a la personalización. Si le falta algo o no está satisfecho con algo, amplíelo o cámbielo fácilmente por el suyo.
La documentación está disponible aquí.
API simple, rápida de aprender y fácil de memorizar.
Compatibilidad con GraphQL.js versión 15.5.1.
Consultas, mutaciones y tipos de entrada.
Resolutores asincrónicos y ejecución de consultas.
Suscripciones.
Escalares personalizados, enumeraciones y directivas de esquema.
Uniones e interfaces.
Cargas de archivos.
Definición de esquema utilizando cadenas SDL.
Cargando esquema desde archivos .graphql
, .gql
y .graphqls
.
Middleware WSGI para implementar GraphQL en sitios existentes.
Extensiones Apollo Tracing y OpenTracing para monitoreo de API.
Opte por el mapeo de resolutores automáticos entre camelCase
y snake_case
, y un decorador de funciones @convert_kwargs_to_snake_case
para convertir camelCase
kwargs en snake_case
.
Servidor de desarrollo síncrono simple incorporado para una experimentación rápida con GraphQL y GraphQL Playground.
Soporte para la extensión Apollo GraphQL para Visual Studio Code.
Validación de sintaxis GraphQL mediante la función auxiliar gql()
. También proporciona coloración si está instalada la extensión Apollo GraphQL.
Sin estado global ni registro de objetos, soporte para múltiples API GraphQL en la misma base de código con reutilización de tipos explícita.
Apoyo a Apollo Federation
.
Ariadne se puede instalar con pip:
pip instalar ariadna
Ariadne requiere Python 3.7 o superior.
El siguiente ejemplo crea una API que define el tipo Person
y el campo de consulta único people
que devuelven una lista de dos personas. También inicia un servidor de desarrollo local con GraphQL Playground disponible en la dirección http://127.0.0.1:8000
.
Comience instalando uvicorn, un servidor ASGI que usaremos para servir la API:
instalar pip uvicorn
Luego cree un archivo example.py
para su aplicación de ejemplo:
de ariadne import ObjectType, QueryType, gql, make_executable_schemafrom ariadne.asgi import GraphQL# Defina tipos utilizando el lenguaje de definición de esquemas (https://graphql.org/learn/schema/)# Ajustar la cadena en la función gql proporciona validación y mejora el error tracebacktype_defs = gql (""" escriba Consulta {personas: [¡Persona!]! } escriba Persona {primerNombre: Cadena lastName: String age: Int fullName: String }""")# Asigne funciones de resolución a campos de consulta usando QueryTypequery = QueryType()# Los solucionadores son simples funciones de [email protected]("people")def resolve_people(*_):return [ {"nombre": "John", "apellido": "Doe", "edad": 21}, {"nombre": "Bob", "apellido": "Boberson", "edad": 24}, ]# Asigne funciones de resolución a campos de tipo personalizado usando ObjectTypeperson = ObjectType("Person")@person.field("fullName")def resolve_person_fullname(person, *_):return "%s %s" % (person["firstName" ], persona["lastName"])# Crear esquema de esquema GraphQL ejecutable = make_executable_schema(type_defs, query, person)# Crear una aplicación ASGI usando esquema, ejecutándose en modo de depuración aplicación = GraphQL (esquema, depuración = Verdadero)
Finalmente ejecute el servidor:
ejemplo de uvicorn: aplicación
Para obtener más guías y ejemplos, consulte la documentación.
¡Agradecemos las contribuciones a Ariadne! Si encontró un error o problema, no dude en utilizar los problemas de GitHub. Si tiene alguna pregunta o comentario, no dude en contactarnos en las discusiones de GitHub.
Para obtener orientación e instrucciones, consulte CONTRIBUTING.md.
El sitio web y los documentos tienen su propio repositorio de GitHub: mirumee/ariadne-website
¡También asegúrese de seguir a @AriadneGraphQL en Twitter para obtener las últimas actualizaciones, noticias y reflexiones aleatorias!
Elaborado con ❤️ por Mirumee Software [email protected]