考虑我们在一堆REST API之上构建一个graphql服务器,我们有两个 endpoints ,Industry和Company . 我们将它们全部包装到graphql服务器中,这允许我们进行如下查询:

{industry (name: "Education") {companies {id}}}

它会给我们:

{data: {industry:{companies: [{id:1}, {id:2}]}}}

一个简单的查询 .

如果我们提出更多要求,让我们说我们要求公司的名称,它将返回

{data: {industry:{companies: [{id:1, name: 'a'}, {id:2, name:'b'}]}}}

但是,在屏幕后面,这两个查询之间存在很大差异 . 第一个只询问id,哪个行业终点已经提供了它 . 第二个要求输入名称,您必须对公司 endpoints 进行额外调用才能获得该名称 .

一种方法是始终将呼叫发送到公司 endpoints ,即使用户只询问ID,但我在想是否可以让解析器功能知道用户正在询问哪些字段,并做出更明智的决策 .

我不确定这是否遵循最佳做法 . 任何帮助表示赞赏 .