没有项目描述
PyQL的Python项目详细描述
python的graphql帮助程序。
模式定义
pyql为定义graphql模式提供了更好/更干净的语法。
使用pyql:
frompyqlimportSchemaschema=Schema()@schema.query.field('hello')defresolve_hello(root,info,name:str='world')->str:return'Hello {}'.format(name)compiled=schema.compile()
相当于使用graphql核心:
fromgraphqlimport(GraphQLObjectType,GraphQLField,GraphQLArgument,GraphQLString,GraphQLSchema)Query=GraphQLObjectType('Query',fields=lambda:{'hello':GraphQLField(GraphQLString,args={'name':GraphQLArgument(type=GraphQLString,default_value='world',),},resolver=lambdaroot,info,name='world':f'Hello, {name}'),})schema=GraphQLSchema(query=Query)
石墨烯看起来稍微好一点,但它相当混乱,使 使用不必要的对象:
importgrapheneclassQuery(graphene.ObjectType):hello=graphene.Field(graphene.String,name=graphene.Argument(graphene.String))defresolve_hello(self,info,name='world'):returnf'Hello {name}'schema=graphene.Schema(query=Query)
pyql尽可能使用标准的python内省来找出 因此,参数定义可以自动获取 从解析器函数等中获取。
限制
虽然有计划收集字段参数文档 从docstrings自动生成,它当前未实现为 可靠地分析docstring是一项非常重要的任务。