socketify.py/examples/graphiql.py

33 wiersze
743 B
Python
Czysty Zwykły widok Historia

2022-11-15 13:04:55 +00:00
import dataclasses
import strawberry
import strawberry.utils.graphiql
from socketify import App
from typing import List, Optional
2022-11-15 13:17:09 +00:00
from helpers.graphiql import graphiql_from
2022-11-15 13:04:55 +00:00
2022-11-16 19:28:46 +00:00
2022-11-15 13:04:55 +00:00
@strawberry.type
class User:
name: str
2022-11-16 19:28:46 +00:00
2022-11-15 13:04:55 +00:00
@strawberry.type
class Query:
@strawberry.field
def user(self) -> Optional[User]:
# self.context is the AppRequest
2022-11-15 13:04:55 +00:00
return User(name="Hello")
app = App()
app.get("/", lambda res, req: res.end(strawberry.utils.graphiql.get_graphiql_html()))
2022-11-15 13:17:09 +00:00
app.post("/", graphiql_from(Query))
2022-11-15 13:30:01 +00:00
# you can also pass an Mutation as second parameter
# app.post("/", graphiql_from(Query, Mutation))
2022-11-16 19:28:46 +00:00
app.listen(
3000,
lambda config: print("Listening on port http://localhost:%d now\n" % config.port),
)
app.run()