wso2 api manager v1.10.0是否允许通过自定义顺序将请求的HTTP方法转换为后端?
我通过发布商Web控制台使用http GET资源创建了一个api。但由于端点仅支持POST方法,我尝试通过使用属性介体创建自定义来更改HTTP方法:
<property name="HTTP_METHOD" value="POST" scope="axis2"/>
但是回复显示了错误信息:
{
"fault": {
"code": 403,
"type": "Status report",
"message": "Fault Call",
"description": "No matching resource found in the API for the given request"
}
}
日志文件只显示以下行:
==> /opt/wso2am-gateway/repository/logs/wso2carbon.log <==
[2016-04-08 10:30:16,868] INFO - STATUS = Executing default 'fault' sequence, ERROR_CODE = 403, ERROR_MESSAGE = No matching resource found in the API for the given request {org.apache.synapse.mediators.builtin.LogMediator}
如果我删除了属性介体,请求将通过并到达后端。
有谁知道如何解决这个问题?
答案 0 :(得分:0)
您还需要在API上定义POST资源(尽管您不使用它)
答案 1 :(得分:0)
您可以使用以下自定义inFlow中介序列将HTTP_METHOD从GET转换为POST。
<?xml version="1.0" encoding="UTF-8"?>
<sequence name="CustomIn" xmlns="http://ws.apache.org/ns/synapse">
<property action="remove" name="HTTP_METHOD" scope="axis2"/>
<property name="HTTP_METHOD" scope="axis2" type="STRING" value="POST"/>
</sequence>
这里,请求是来自客户端的GET请求。
但是,仅当您在API上类似地定义GET和POST资源时,上述解决方案才有可能(尽管您不使用两者之一)。
否则,在调用API时会收到以下错误消息。