我可以创建一个定义两个数字之和的API并向我返回输出。我想在Azure Web API管理本身中编写所有逻辑。是否有任何规定,还是我需要在计算机中创建它并将其导入到Azure Web API管理中?
是否可以在Azure本身的Web API中创建它,而不是将其导入?
答案 0 :(得分:1)
有两种方法可以解决此问题。 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函数。