10月8日至10日,与我们在纽约市一起学习有关GraphQL联邦和API平台工程的最新技巧、趋势和新闻。加入我们,2024年10月纽约市GraphQL峰会
文档
免费开始

使用GraphOS路由器和API网关启用HTTP订阅

在路由器前使用API网关时启用HTTP多部分订阅

路由器

了解如何配置API网关以支持HTTP多部分。 使用

组织可能需要他们的API(包括路由器——)通过API网关访问。API网关通常未配置为支持通过HTTP多部分进行的订阅:API网关默认通常会缓冲HTTP响应,但订阅需要在HTTP多部分中流式传输,而不能缓冲。

本文的其余部分描述了如何配置不同供应商的API网关以流式传输而不是缓冲HTTP响应,从而支持订阅在HTTP多部分中。

Azure API管理(APIM)

默认情况下,APIM中的HTTP API端点缓冲来自下游服务的每个响应,端点必须接收到HTTP响应的所有片段才能将响应发送给客户端。

要启用HTTP 订阅,需要更新forward-request策略的backend部分,增加buffer-response="false"。此配置使得HTTP API端点在接收到响应片段时立即将其发送给请求客户端。

<policies>
<backend>
<forward-request http-version="2or1" buffer-response="false" />
</backend>
</policies>

Google Apigee

默认情况下,Apigee中的HTTP API端点将对下游服务的每个响应进行缓冲,端点必须接收到HTTP响应的所有块后才能将响应发送到客户端。

要启用HTTP订阅,必须在代理包中的ProxyEndpointTargetEndpoint定义中设置response.streaming.enabled属性为true。这将配置HTTP API端点在接收到响应块时将其发送给请求客户端。

<TargetEndpoint name="default">
<HTTPTargetConnection>
<URL>http://mocktarget.apigee.net</URL>
<Properties>
<Property name="response.streaming.enabled">true</Property>
</Properties>
</HTTPTargetConnection>
</TargetEndpoint>
<ProxyEndpoint name="default">
<HTTPProxyConnection>
<BasePath>/v1/weather</BasePath>
<Properties>
<Property name="response.streaming.enabled">true</Property>
</Properties>
</HTTPProxyConnection>
</ProxyEndpoint>

注意

有关更多信息,请参阅Apigee文档中的流式请求和响应

Mulesoft

Flex Gateway

无需额外配置即可支持HTTP分块的流式传输。

代理 (Mule 4, CloudHub 2.0)

不支持HTTP分块的流式传输。请使用Flex Gateway。

Kong

无需额外配置即可支持HTTP分块的流式传输。

AWS API Gateway

AWS API Gateway不支持HTTP数据的流式传输。

一种可能的解决方案是使用支持流式传输的Lambda表达式。有关更多信息,请参阅AWS Lambda响应流式传输

下一页
首页
评价文章评价在GitHub上编辑编辑论坛Discord

©2024Apollo Graph Inc.,简称Apollo GraphQL.

隐私政策

公司