1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
|
from dataclasses import dataclass
from graphql import print_schema
from apischema.graphql import graphql_schema, resolver
@dataclass
class Bar:
baz: int
@dataclass
class Foo:
@resolver
async def bar(self, arg: int = 0) -> Bar:
...
async def foo() -> Foo | None:
...
schema = graphql_schema(query=[foo])
schema_str = """\
type Query {
foo: Foo
}
type Foo {
bar(arg: Int! = 0): Bar!
}
type Bar {
baz: Int!
}"""
assert print_schema(schema) == schema_str
|