图形ql DSL
graphql-dsl的Python项目详细描述
通过定义Python类型组合GraphQL查询
pip install graphql-dsl
让我们以一个手工编写的GraphQL query:
^{pr2}$使用graphql-dsl,可以使用以下Python片段构造类似的查询:
fromtypingimportNamedTuplefromgraphql_dslimport*classHero(NamedTuple):name:strclassDroid(NamedTuple):name:strclassHeroAndDroid(NamedTuple):hero:Herodroid:DroidclassInput(NamedTuple):droid_id:IDq=GQL(QUERY|HeroAndDroid|WITH|Input|PASS|Input.droid_id*TO*HeroAndDroid.droid*AS*'id')print(q.query)
输出将是:
query HeroAndDroid($droidId:ID!){hero{name}droid(id:$droidId){name}}
查询生成器同时支持NamedTuple和@dataclass类型,但后者有一点不同 字段引用语法(因为dataclasses不定义类级别的字段getter):
fromdataclassesimportdataclassfromgraphql_dslimport*@dataclassclassHero:name:str@dataclassclassDroid:name:str@dataclassclassHeroAndDroid:hero:Herodroid:Droid@dataclassclassInput:droid_id:IDq=GQL(QUERY|HeroAndDroid|WITH|Input|PASS|(Input,'droid_id')*TO*(HeroAndDroid,'droid')*AS*'id')
从Official Documentation了解更多信息。在
- 项目
标签: