Библиотека Python GraphQL на основе классов данных
Метод быстрого запуска предоставляет сервер и интерфейс командной строки для быстрого начала работы. Установить с помощью:
pip install " strawberry-graphql[debug-server] "
Создайте файл app.py
со следующим кодом:
import strawberry
@ strawberry . type
class User :
name : str
age : int
@ strawberry . type
class Query :
@ strawberry . field
def user ( self ) -> User :
return User ( name = "Patrick" , age = 100 )
schema = strawberry . Schema ( query = Query )
Это создаст схему GraphQL, определяющую тип User
и одного user
поля запроса, который вернет жестко закодированного пользователя.
Чтобы запустить сервер отладки, выполните следующую команду:
strawberry server app
Откройте сервер отладки, нажав на следующую ссылку: http://0.0.0.0:8000/graphql.
Откроется GraphiQL, где вы сможете протестировать API.
Strawberry поставляется с плагином mypy, который позволяет статически проверять типы вашей схемы GraphQL. Чтобы включить его, добавьте следующие строки в конфигурацию mypy.ini
:
[mypy]
plugins = strawberry.ext.mypy_plugin
Представление Django предназначено для добавления конечной точки GraphQL в ваше приложение.
INSTALLED_APPS
. INSTALLED_APPS = [
..., # your other apps
"strawberry.django" ,
]
urls.py
from strawberry . django . views import GraphQLView
from . schema import schema
urlpatterns = [
...,
path ( "graphql" , GraphQLView . as_view ( schema = schema )),
]
Для поддержки подписок Graphql через WebSockets вам необходимо предоставить сервер с поддержкой WebSocket. Сервер отладки можно настроить для поддержки WebSockets с помощью следующих команд:
pip install ' strawberry-graphql[debug-server] '
pip install ' uvicorn[standard] '
Мы используем поэзию для управления зависимостями. Для начала выполните следующие действия:
git clone https://github.com/strawberry-graphql/strawberry
cd strawberry
poetry install --with integrations
poetry run pytest
Более подробную информацию можно найти на странице вклада.
У нас есть конфигурация для предварительной фиксации, чтобы добавить хук, выполните следующую команду:
pre-commit install
Код в этом проекте лицензируется по лицензии MIT. См. ЛИЦЕНЗИЮ для получения дополнительной информации.