我有一个遗留 API,期望通过 POST 调用具有 3 个表单字段(每个字段包含一个字符串)的表单。我想将此调用包在 Azure API 管理中。
我希望我漏掉了一些基本的东西,但我假设 API 服务会将它收到的东西传递给我的传统 API。
我创建了 - 一个API -一个操作(POST) -一个后端服务 -登录后端服务的凭证。
我可以通过测试链接或通过postman调用服务。它肯定是打到了后端API--但它似乎没有传递我的多部分表单字段。
我需要创建一个代表吗?
有什么指导链接吗?
我已经做了一个类似的事情,设置一个与AAD API通信的令牌API,它接受表单数据。我接受 ClientId
和 ClienSecret
在我的APIM暴露的API中作为输入,例如
{
"ClientID":"",
"ClientSecret": ""
}
这将被传递给后端,如下所示
<set-backend-service base-url="https://login.microsoftonline.com/someguid/oauth2/v2.0" />
<set-header name="Content-Type" exists-action="override">
<value>application/x-www-form-urlencoded</value>
</set-header>
<set-body>@{
JObject request = JObject.Parse(context.Request.Body.As<string>(preserveContent:true));
string clientId = (string)request?["ClientId"];
string clientSecret = (string)request?["ClientSecret"];
string scope = "api://someguid/.default";
string grantType = "client_credentials";
string response = $"client_id={clientId}&client_secret={clientSecret}&scope={scope}&grant_type={grantType}";
return response;
}</set-body>