我需要调用使用 GET 的旧版 API。
我的 API 代理使用 POST。
我尝试使用AssignMessage
:
<AssignTo type="request" createNew="false"/>
and
<Set> ... <Verb>GET</Verb>
但它仍然对目标 API 执行 POST。
正确的转换方法是什么?
网关会自动将POST表单参数转换为GET查询参数吗?
是message.queryparam
GET 和 POST 都一样吗?
当转换动词时POST
to GET
,策略不会自动将表单参数转换为查询参数。您将需要使用<Add>
and/or <Remove>
的功能AssignMessage
进一步操纵消息的政策。示例中的使用AssignMessage
添加查询参数的策略,引用表单参数:
<Add>
<QueryParams>
<QueryParam name="q1">{request.formparam.q1}</QueryParam>
</QueryParams>
</Add>
另外,在您的问题中您提到 API 代理使用以下方法接受请求POST
。然后,您需要制定政策GET
:
<Set> ... <Verb>GET</Verb>
但它仍然对目标 API 执行 GET 操作。
有什么问题?这不是你所期待的吗?该请求进入 Apigee API 代理,如下所示POST
,代理将方法(动词)转换为GET
,并使用以下命令将请求发送到后端遗留 APIGET
.
Note: <AssignTo>
在AssignMessage 中是可选的。如果方法设置不正确,请尝试忽略此选项。如果没有它,流中当前点的消息将被修改。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)