Biblioteca Python GraphQL baseada em classes de dados
O método de início rápido fornece um servidor e CLI para começar rapidamente. Instale com:
pip install " strawberry-graphql[debug-server] "
Crie um arquivo chamado app.py
com o seguinte código:
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 )
Isso criará um esquema GraphQL definindo um tipo User
e um único user
de campo de consulta que retornará um usuário codificado.
Para executar o servidor de depuração, execute o seguinte comando:
strawberry server app
Abra o servidor de depuração clicando no seguinte link: http://0.0.0.0:8000/graphql
Isso abrirá o GraphiQL, onde você poderá testar a API.
Strawberry vem com um plugin mypy que permite a verificação estática de tipo em seu esquema GraphQL. Para habilitá-lo, adicione as seguintes linhas à configuração do mypy.ini
:
[mypy]
plugins = strawberry.ext.mypy_plugin
Uma visualização Django é fornecida para adicionar um endpoint GraphQL ao seu aplicativo.
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 )),
]
Para oferecer suporte a assinaturas graphql sobre WebSockets, você precisa fornecer um servidor habilitado para WebSocket. O servidor de depuração pode ser feito para suportar WebSockets com estes comandos:
pip install ' strawberry-graphql[debug-server] '
pip install ' uvicorn[standard] '
Usamos poesia para gerenciar dependências. Para começar, siga estas etapas:
git clone https://github.com/strawberry-graphql/strawberry
cd strawberry
poetry install --with integrations
poetry run pytest
Para mais detalhes, confira a página de contribuição
Temos uma configuração para pré-commit, para adicionar o hook execute o seguinte comando:
pre-commit install
O código neste projeto está licenciado sob licença do MIT. Consulte LICENÇA para obter mais informações.