【问题标题】:Send 1 request, Receive 2 Responses GraphQL发送 1 个请求,接收 2 个响应 GraphQL
【发布时间】:2020-01-28 18:38:36
【问题描述】:

我想在来自客户端的请求期间(并且取决于返回的数据)触发来自 Apollo 服务器的请求。我想把原来客户端请求的数据返回,然后再把服务器发起的请求中的数据返回给客户端。

服务器:

async function getPlaylistItems(playlistId) {
  const url = '... external api endpoint with query parameter playlistId=playlistId'
  const response = await axios(url, { method: 'GET' });
  // response.data = ['title1','title2',...]'
  const secondUrl = '...another external endpoint with response.data as query parameters'
    // create a new request (but don't wait for it to resolve) and return response.data to client
    const secondRequest = axios(secondUrl, { method: 'GET' });
    return response.data
}

客户:

const playlist = getPlaylistItems('playlistId');
const secondRequestData = ...?

我想先接收来自 getPlaylistItems 的响应,然后在解决后将来自 secondRequest(在服务器上)的响应发送回客户端。

这是所需数据流的示意图:

【问题讨论】:

    标签: javascript graphql apollo-server


    【解决方案1】:

    您正在寻找的功能是@defer directive。但目前它正在开发中,无法通过 apollo-server 使用它。

    据我所知,目前不支持返回部分响应。

    否则,如果您真的想返回部分响应,您可以使用 GraphQL 订阅。

    更多关于@defer的信息

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-26
      • 1970-01-01
      • 2011-05-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多