Steps for Django GraphQL -- Schema

一开始讲到,我个人认为 GraphQL 的最抢镜头的地方就是 schema

所以接下来,我们先打开之前创建好的 schema.py 档,从 query (拿资料) 开始

加入:

import grapheneclass Query(graphene.ObjectType):    reverse = graphene.String(word=graphene.String(default_value='t'))    def resolve_reverse(self, info, word):        print(self)        return 'hello'schema = graphene.Schema(query=Query)

其中的主体是 schema = graphene.Schema(query=Query),定义了之前我们在 urls.py 里面引进的 schema 。

这时我们把伺服器跑起来: python manage.py runserver 8010
再连到网址 http://localhost:8010/graph/ 可看到一个开发 GUI
http://img2.58codes.com/2024/20107235EHthDxAtMJ.png



在这个範例中,我们定义了一个型别为 string 的属性 reverse 来让使用者 query 它。

同时可以看到:
graphene.ObjectType 是 graphene 里面的基本物件,在它里面每个属性都代表之后你可以 query 的选项
并且每个属性你都需要给他一个 def resolve_属性名称(...) 来告诉 graphql 当使用者 query 了这个属性,你想要回传什么 (回传的资料必须符合你给它的型别,在这边是 String)。

然后在 graphene.String() 的括号里,你可以给他你想要的 query 限制条件选项,在这边是 word 并给予预设值 't',若没给预设值,使用者就一定要给这个限制条件输入值。

其中官方给的最基本可以定义的类别单元有:

graphene.Stringgraphene.Intgraphene.Floatgraphene.Booleangraphene.IDgraphene.types.datetime.DateTimegraphene.types.datetime.Timegraphene.types.json.JSONString

接下来我们从拿资料需求的角度开始讲会比较容易理解。


关于作者: 网站小编

码农网专注IT技术教程资源分享平台,学习资源下载网站,58码农网包含计算机技术、网站程序源码下载、编程技术论坛、互联网资源下载等产品服务,提供原创、优质、完整内容的专业码农交流分享平台。

热门文章