【发布时间】:2019-10-21 04:51:46
【问题描述】:
我将给出一个使用 GitHub GraphQL API 的具体示例(这是我要解决的特定问题),但总体而言,这个问题似乎可以推广到 GraphQL。
假设我想为存储库 pytorch/pytorch 上的问题 #1234 添加标签“高优先级”。根据API文档,我应该使用突变https://developer.github.com/v4/mutation/addlabelstolabelable/ 输入要求:
labelIds ([ID!]!)
The ids of the labels to add.
labelableId (ID!)
The id of the labelable object to add labels to.
好的,我如何获取 ID?在我的代码中,我知道我想要标签“高优先级”,但要实际将其传达给这个突变,我必须首先将“高优先级”解析为一个 ID,但先进行另一个 GraphQL 调用。我要标记的内容也是如此:我有一个 pytorch/pytorch#1234 形式的唯一标识符,但我没有 ID,我必须查找它。)
所以在一天结束时,我必须执行 三个 API 调用来标记某些内容,而我本可以在 REST 中完成它而不是一个调用。总的来说,我看到很多 GraphQL 变异 API 只在 ID 中说话(即使系统有其他一些可用的规范标识符),我最终不得不做额外的往返。我做错了吗?或者这真的是 GraphQL 的设计方式?
【问题讨论】:
标签: graphql github-api