Есть два способа сделать это. APIM поддерживает выражения политики: https://docs.microsoft.com/en-us/azure/api-management/api-management-policy-expressions Это позволяет подключать произвольный код к конвейеру обработки запросов. Вы можете проверить примеры политики здесь: https://docs.microsoft.com/en-us/azure/api-management/policy-samples, чтобы увидеть это в действии. В сочетании с другими политиками это позволяет вам многое. Если мы предполагаем, что ваша операция «сложения» имеет шаблон URI / add? A = {a} & b = {b}, то вы можете суммировать и возвращать результат с помощью одной простой политики:
<return-response>
<set-status code="200" reason="OK" />
<set-body>@{
var a = int.Parse(context.Request.Url.Query.GetValueOrDefault("a", "0"));
var b = int.Parse(context.Request.Url.Query.GetValueOrDefault("b", "0"));
return (a + b).ToString();
}</set-body>
</return-response>
Как вы можете видеть, это довольно обычный код C #, но он ограничен в том, что вы можете делать и какие типы вы можете использовать (см. Первую ссылку). Если вы не можете заставить его работать в рамках этих ограничений, лучше всего переместить пользовательскую логику за пределы APIM, например, в функции Azure.