首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在Azure API管理请求中轮询持久函数

在Azure API管理请求中轮询持久函数
EN

Stack Overflow用户
提问于 2020-05-02 02:41:49
回答 1查看 712关注 0票数 1

是否可以在APIM请求内部进行短轮询,然后用同步响应进行响应?

流程是这样的:

  1. APIM接收请求
  2. APIM触发持久的函数编排。
  3. APIM等待并轮询持久函数响应(通过策略?)
  4. APIM用实际结果进行响应。

对于API使用者来说,这将是一个单一的请求。

这是一种常见的模式吗?还是只向API使用者提供202个响应轮询URL更好?我预计请求只需几秒钟到不到一分钟。

有没有一种我还没考虑过的更标准的方法呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-05-02 05:07:59

它是主观的,你想要你的API显示给消费者。

  1. 如果您希望前端用户轮询API,那么使用位置标头中的轮询url的202接受响应就是方法。
  2. 如果要将API伪装为同步API,则必须在APIM策略中实现轮询模式本身。请参考下面的文章

在将实现转移到逻辑应用程序时使用API-M来掩盖异步API。,即使它属于逻辑应用程序,您也可以为任何异步API实现相同的模式。

摘录自链接:

代码语言:javascript
运行
复制
<outbound>
   <base />
   <retry condition="@(((IResponse)context.Variables["var"]).StatusCode == 202)" count="10" interval="30">
      <send-request mode="new" response-variable-name="var" ignore-error="false">
         <set-url>@(context.Response.Headers["location"][0])</set-url>
         <set-method>GET</set-method>
      </send-request>
   </retry>
   <return-response response-variable-name="var" />
</outbound>

正如我前面所指出的,它实际上取决于您希望如何将API呈现给您的消费者。两种模式都是有效的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61553810

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档