single |
[image]
# Strawberry GraphQL
> Python GraphQL library based on dataclasses
[CircleCI]
[Discord]
[PyPI]
## Installation ( Quick Start )
The quick start method provides a server and CLI to get going quickly.
Install
with:
```shell
pip install "strawberry-graphql[cli]"
```
## Getting Started
Create a file called `app.py` with the following code:
```python
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 serve the schema using the dev server run the following command:
`shell
strawberry dev app
`
Open the dev 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:
```ini
[mypy]
plugins = strawberry.ext.mypy_plugin
```
[mypy]: http://www.mypy-lang.org/
### Django Integration
A Django view is provided for adding a GraphQL endpoint to your
application.
1. Add the app to your `INSTALLED_APPS`.
```python
INSTALLED_APPS = [
..., # your other apps
"strawberry.django",
]
```
2. Add the view to your `urls.py` file.
```python
from strawberry.django.views import GraphQLView
from .schema import schema
urlpatterns = [
...,
path("graphql", GraphQLView.as_view(schema=schema)),
]
```
## Examples
* [Various examples on how to use Strawberry]
* [Full stack example using Starlette, SQLAlchemy, Typescript codegen and
Next.js]
|