GraphQL 能不能一个请求完成查询然后修改的操作

2019-01-22 18:05:39 +08:00
 rikka

想用 github 的 api 来干点事 https://developer.github.com/v4/

已知 owner 和 name

{
  repository(owner: "repository 作者", name: "repository 名称") {
    id
  }
}

得到 repository 的 id,然后添加个 issue

mutation {
  createIssue(input: {title: "test", repositoryId: "repository 的 id"
  , projectIds: [], labelIds: [], assigneeIds: []}) {
    issue {
        id
    }
  }
}

得到 issue 的 id,最后我要利用这个 id 把这个 issue 关掉

共 3 步操作,很疑惑,GraphQL 到底能不能用一个请求来搞定,怎么搞法?不能的话,我用 restfull 干这事也差不多啊,GraphQL 这玩意学习成本还有点高😂

2299 次点击
所在节点    程序员
8 条回复
Rwing
2019-01-22 18:25:53 +08:00
是呢,似乎 GraphQL 更适合用来查询?
lincanbin
2019-01-22 18:37:54 +08:00
GraphQL is a data query language
nigelvon
2019-01-22 18:46:36 +08:00
这个问题和 graphQL 关系不大,要么你封装一个 mutation 直接接收 owner name title ...发帖子,要么就像你说的分两步。graphQL 并不能帮你解决这个问题。但是如果整体和 restfull 比,优点不要太多,能极大提升前后端迭代速度。
rikka
2019-01-22 19:12:06 +08:00
@nigelvon #3 封装 mutation 也不行吧,我这个问题的关键是每一步操作需要的参数是从上一步操作得到的,这 3 步操作要严格顺序执行才能得到我需要的结果
rikka
2019-01-22 19:14:53 +08:00
刚看 GraphQL 官网 A query language for your API 😭
谷歌一下午,这下死心了
3 步操作要写 3 个请求,实在是烦人,本以为 GraphQL 能帮忙搞定。。。
rikka
2019-01-22 19:30:45 +08:00
@Rwing #1
@lincanbin #2
@nigelvon #3

突然有个问题,已知一个分类名称,需要查询这个分类下的所有商品
普通操作的话,需要 2 步:
1.根据分类名称查询得到分类 id
2.利用分类 id 查到商品出来

这种纯查询操作,GraphQL 到底能不能一步搞定啊?
fuxkcsdn
2019-01-22 22:57:58 +08:00
@rikka 这个可以实现
伪代码
```graphql
query {
categories (name=abc) {
products {
id,
name
}
}
}
```
rikka
2019-01-23 15:16:49 +08:00
@fuxkcsdn #7 谢谢解答,能这样一步搞定看来还不错,刚接触 GraphQL 有点懵😬

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/529554

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX