Ариадна — это библиотека Python для реализации серверов GraphQL.
Схема прежде всего: Ариадна позволяет разработчикам Python использовать подход «сначала схема» для реализации API. Это ведущий подход, используемый сообществом GraphQL и поддерживаемый десятками инструментов, примеров и учебных ресурсов для разработчиков внешнего и внутреннего интерфейса. Ариадна сразу же делает все это доступным вам и другим членам вашей команды.
Просто: Ariadne предлагает небольшой, последовательный и простой в запоминании API, который позволяет разработчикам сосредоточиться на бизнес-задачах, а не на шаблоне.
Открытость: Ариадна была спроектирована как модульная и открытая для настройки. Если вам чего-то не хватает или вас что-то не устраивает, дополните или легко замените на свое.
Документация доступна здесь.
Простой, быстрый в освоении и легкий для запоминания API.
Совместимость с GraphQL.js версии 15.5.1.
Запросы, мутации и типы ввода.
Асинхронные преобразователи и выполнение запросов.
Подписки.
Пользовательские скаляры, перечисления и директивы схемы.
Объединения и интерфейсы.
Загрузка файлов.
Определение схемы с использованием строк SDL.
Загрузка схемы из файлов .graphql
, .gql
и .graphqls
.
Промежуточное программное обеспечение WSGI для реализации GraphQL на существующих сайтах.
Расширения Apollo Tracing и OpenTracing для мониторинга API.
Включите автоматическое сопоставление преобразователей camelCase
и snake_case
и декоратор функции @convert_kwargs_to_snake_case
для преобразования kwargs camelCase
в snake_case
.
Встроенный простой синхронный сервер разработки для быстрого экспериментирования с GraphQL и игровой площадки GraphQL.
Поддержка расширения Apollo GraphQL для кода Visual Studio.
Проверка синтаксиса GraphQL с помощью вспомогательной функции gql()
. Также обеспечивает раскрашивание, если установлено расширение Apollo GraphQL.
Нет глобального реестра состояний или объектов, поддержка нескольких API-интерфейсов GraphQL в одной базе кода с явным повторным использованием типов.
Поддержка Apollo Federation
.
Ариадну можно установить с помощью pip:
pip install Ариадна
Для Ариадны требуется Python 3.7 или выше.
В следующем примере создается API, определяющий тип Person
и одно поле запроса people
возвращающее список из двух человек. Он также запускает локальный сервер разработки с GraphQL Playground, доступный по адресу http://127.0.0.1:8000
.
Начните с установки uvicorn, сервера ASGI, который мы будем использовать для обслуживания API:
pip установить uvicorn
Затем создайте файл example.py
для вашего примера приложения:
from ariadne import ObjectType, QueryType, gql, make_executable_schemafrom ariadne.asgi import GraphQL# Определение типов с использованием языка определения схемы (https://graphql.org/learn/schema/)# Обертывание строки в функцию gql обеспечивает проверку и лучшую ошибку (""" type Query {people: [Person!]! } type Person { firstName: String LastName: String age: Int fullName: String }""")# Сопоставление функций преобразователя с полями запроса с помощью QueryTypequery = QueryType()# Резолверы — это простые функции Python @query.field("people")defsolve_people(*_):return [ {"firstName": "Джон", "lastName": "Доу", "возраст": 21}, {"firstName": "Боб", "lastName": "Боберсон", "возраст": 24}, ]# Сопоставление функций преобразователя с полями настраиваемого типа с помощью ObjectTypeperson = ObjectType("Person")@person.field("fullName")defsolve_person_fullname(person, *_):return "%s %s" % (person["firstName" ], person["lastName"])# Создайте исполняемый файл схемы GraphQL = make_executable_schema(type_defs, query, person)# Создайте приложение ASGI, используя схему, работающую в режиме отладки modeapp = GraphQL (схема, отладка = True)
Наконец запустите сервер:
пример увикорна: приложение
Дополнительные руководства и примеры можно найти в документации.
Мы приветствуем вклад в Ариадну! Если вы обнаружили ошибку или проблему, смело используйте выпуски GitHub. Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь обращаться к нам в обсуждениях GitHub.
Рекомендации и инструкции можно найти на сайте CONTRIBUTING.md.
Веб-сайт и документация имеют собственный репозиторий GitHub: mirumee/ariadne-website.
Также не забудьте подписаться на @AriadneGraphQL в Твиттере, чтобы быть в курсе последних обновлений, новостей и случайных размышлений!
Создано с помощью ❤️ от Mirumee Software [email protected]