Strawberry GraphQL
Python GraphQL library based on dataclasses
Installation ( Quick Start )
The quick start method provides a server and CLI to get going quickly. Install with:
pip install "strawberry-graphql[debug-server]"
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) -> 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 = [
..., # your other apps
"strawberry.django",
]
- Add the view to your
urls.pyfile.
from strawberry.django.views import GraphQLView
from .schema import schema
urlpatterns = [
...,
path("graphql", GraphQLView.as_view(schema=schema)),
]
WebSockets
To support graphql Subscriptions over WebSockets you need to provide a WebSocket enabled server. The debug server can be made to support WebSockets with these commands:
pip install 'strawberry-graphql[debug-server]'
pip install 'uvicorn[standard]'
Examples
- Various examples on how to use Strawberry
- Full stack example using Starlette, SQLAlchemy, Typescript codegen and Next.js
- Quart + Strawberry tutorial
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 --with integrations
poetry run pytest
For all further detail, check out the Contributing Page
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.
Metadata
Release files for strawberry-graphql 0.236.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| strawberry_graphql-0.236.1.tar.gz | 208.7 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| strawberry_graphql-0.236.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 513.7 kB
Release files / strawberry_graphql-0.236.1.tar.gz
| Download URL | strawberry_graphql-0.236.1.tar.gz |
|---|---|
| Size | 208.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
4fb69c25022d723e8fb7c4c47847cd096de9e6ada8878a19f3414f38d3670ad5
|
|
BLAKE2b-256 checksum How to use checksums |
2c437d8e72aeebcd77dd420a5e61e21b1306b220db8cd6eeb8a3c4191c0b6aeb
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/1.8.3 CPython/3.10.14 Linux/6.5.0-1024-azure
|
Release files / strawberry_graphql-0.236.1-py3-none-any.whl
| Download URL | strawberry_graphql-0.236.1-py3-none-any.whl |
|---|---|
| Size | 305.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
ddb54241a97fcab640ba8817505f7dc7b5b262424b6125ee8ec9ef11b85366a7
|
|
BLAKE2b-256 checksum How to use checksums |
1440e23e0c2779fb03bef91347a159e82c7baad289d0b82f62a7310211857d0b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/1.8.3 CPython/3.10.14 Linux/6.5.0-1024-azure
|
Security for strawberry-graphql 0.236.1
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.