Опрос надежной функции внутри Azure запроса управления API - PullRequest
0 голосов
/ 02 мая 2020

Можно ли выполнить внутренний опрос внутри запроса APIM, а затем ответить syn c response?

Процесс выглядит следующим образом:
1. APIM получает запрос
2 APIM запускает оркестровку долговременной функции.
3. APIM ожидает и запрашивает ответ долговременной функции (через политику?)
4. APIM отвечает фактическим результатом

Получателю API: будет один запрос.

Это обычная модель? Или лучше предоставить URL-адрес опроса 202 потребителю API? Я ожидаю, что запрос займет от нескольких секунд до минуты.

Есть ли более стандартный способ сделать это, который я еще не рассмотрел?

1 Ответ

1 голос
/ 02 мая 2020

Это зависит от того, как вы хотите, чтобы ваш API был представлен потребителям.

  1. Если вы хотите, чтобы интерфейсные пользователи опрашивали API, тогда 202 Принятый ответ с URL-адресом опроса в заголовке местоположения.
  2. Если вы хотите замаскировать свой API как синхронный API, вам придется реализовать сам шаблон опроса внутри политики APIM. Об этом см. Следующий пост

Использование API-M для маскировки API-интерфейсов Asyn c при перемещении реализации в Logi c Apps , даже если это относится к logi c Приложение, вы можете реализовать тот же шаблон для любого asyn c API

выдержка из ссылки:

<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 быть представленным вашим потребителям. Оба шаблона действительны.

...