如何设置 Azure API 管理以接受带有表单数据字段的 POST,并将其传递给传统 API?

问题描述 投票:0回答:1

我有一个遗留 API,期望通过 POST 调用具有 3 个表单字段(每个字段包含一个字符串)的表单。我想将此调用包在 Azure API 管理中。

我希望我漏掉了一些基本的东西,但我假设 API 服务会将它收到的东西传递给我的传统 API。

我创建了 - 一个API -一个操作(POST) -一个后端服务 -登录后端服务的凭证。

我可以通过测试链接或通过postman调用服务。它肯定是打到了后端API--但它似乎没有传递我的多部分表单字段。

我需要创建一个代表吗?

有什么指导链接吗?

multipartform-data azure-api-management
1个回答
0
投票

我已经做了一个类似的事情,设置一个与AAD API通信的令牌API,它接受表单数据。我接受 ClientIdClienSecret 在我的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>
© www.soinside.com 2019 - 2024. All rights reserved.