A library for creating GraphQL APIs
Project description
Strawberry GraphQL
Python GraphQL library based on dataclasses
Installation
Install with:
pip install strawberry-graphql
Getting Started
Create a file called app.py
with the following code:
import strawberry
@strawberry.type
class User:
name: str
age: int
@strawberry.type
class Query:
@strawberry.field
def user(self, info) -> User:
return User(name="Patrick", age=100)
schema = strawberry.Schema(query=Query)
This will create a GraphQL schema defining a User
type and a single query
field user
that will return a hardcoded user.
To run the debug server run the following command:
strawberry server app
Open the debug server by clicking on the following link: http://0.0.0.0:8000/graphql
This will open GraphiQL where you can test the API.
Type-checking
Strawberry comes with a mypy plugin that enables statically type-checking your GraphQL schema. To enable it, add the following lines to your mypy.ini
configuration:
[mypy]
plugins = strawberry.ext.mypy_plugin
Django Integration
A Django view is provided for adding a GraphQL endpoint to your application.
- Add the app to your
INSTALLED_APPS
.
INSTALLED_APPS = [
...
'strawberry.django',
]
- Add the view to your
urls.py
file.
from strawberry.django.views import GraphQLView
from .schema import schema
urlpatterns = [
...,
path('graphql', GraphQLView.as_view(schema=schema)),
]
Contributing
We use poetry to manage dependencies, to get started follow these steps:
git clone https://github.com/strawberry-graphql/strawberry
cd strawberry
poetry install
poetry run pytest
This will install all the dependencies (including dev ones) and run the tests.
Pre commit
We have a configuration for pre-commit, to add the hook run the following command:
pre-commit install
Links
- Project homepage: https://strawberry.rocks
- Repository: https://github.com/strawberry-graphql/strawberry
- Issue tracker: https://github.com/strawberry-graphql/strawberry/issues
- In case of sensitive bugs like security vulnerabilities, please contact patrick.arminio@gmail.com directly instead of using the issue tracker. We value your effort to improve the security and privacy of this project!
Licensing
The code in this project is licensed under MIT license. See LICENSE for more information.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for strawberry-graphql-0.28.2.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7507301287667fb715db57fe59e4885e7efe4a3f497dc432548569f15893a2e4 |
|
MD5 | f012d38ba9ad6fc846739c6d01fbd6e0 |
|
BLAKE2b-256 | 7968319a96b40f9d13586008ba0e4b0a87750f773dc96629751fd2bf8db3045f |
Hashes for strawberry_graphql-0.28.2-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | cff53dc5fadc8a6b2d488960b0b7ed602ae6baaa39c9a9d758885ca9741f3b36 |
|
MD5 | 8b5896a608c837aa628d33e890d63330 |
|
BLAKE2b-256 | cab040566a01bc6ff8edac3d0711e3d46896f40edea6401ef8ff9512667d3b5f |