用户登录

先看一下应用的数据 .. 打开 db.json .. posts 里面是一组内容 .. 每个内容项目上面有一个 author 属性,表示内容的作者 .. 它的值是某个用户的 id 号 ..

再回到 GraphQL 的 Schema .. 在这个 PostType 里面,我们再添加一个 author 字段 .. 这个字段的 type 应该是一个 UserType .. 等会儿再去定义这个 UserType ..

一个 resolve 方法,设置一下获取数据的方法 .. 方法里面添加一个 obj 参数 .. 这个 obj 表示的就是当前这个内容对象 .. 内容项目里的 author 的值就是内容的作者的 id 号 ..

这里用一下 axios 的 get 方法,请求得到内容的作者 .. 地址是 API_BASE .. users .. 后面再加上 obj.author .. 请求这个地址会返回指定的某个用户数据 .. 接着用一个 then, response 是响应 .. 返回响应里的 data ..

UserType

在这个 PostType 的上面再去定义它的 author 字段需要用的这个 UserType .. 新建一个 GraphQLObjectType .. 配置一下 .. 类型的名字是 User .. 添加一些 fields .. 先添加一个 id 字段 .. 这个字段的 type 是 GraphQLString .. 用户还有一个 name 属性,再添加一个 name 字段 .. 它的 type 也是一个 GraphQLString ..

查询

回到浏览器 .. 在 GraphiQL 上面再试一下 .. 先配置一个查询请求 .. 名字是 getPost .. 里面查询一下 post 字段 .. 设置一下字段的 id 参数的值 .. 需要的字段是内容的 id,内容的 title ,还有内容的 author ..

作者是个 UserType ,它里面有个 name 字段,表示用户的名字 .. 在 author 里面添加一个 name ..

执行一下这个查询 ..

查询出来的结果就是 id 号是 1 的这个内容 .. 结果里面包含内容的 id 号,内容的标题,还有内容的作者,这里我们只要求返回作者的 name 字段的值 ..

再配置一个查询操作 .. 名字是 getPosts .. 字段是 posts .. 执行一下 .. 这里返回了一组内容 .. 这组内容里的每个项目里面,都会包含内容的 id,标题,还有作者 ..

查询内容的作者《 GraphQL:接口查询语言 》

统计

14696
分钟
0
你学会了
0%
完成

社会化网络

关于

微信订阅号

扫描微信二维码关注宁皓网,每天进步一点