我可以创建一个具有两个数字之和的定义的API,并将输出返回给我。我想在Azure Web API Management本身中编写所有逻辑。是否有任何规定,或者我是否需要在我的计算机中创建它并将其导入Azure Web API Management?
是否可以在Azure本身的Web API中创建它,而不是导入它?
有两种方法可以解决这个问题。 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 Functions。