我使用wso2 API管理器发布我的一些API。但我的问题是,如果有人发送带有无效json主体的API请求,是否能够忽略该API调用并向所请求的人提供一些错误消息,而不将该无效的json主体发送到后端。 API管理器版本:1.7
这是不正确的json请求(尝试在没有值的情况下发送" moduleCode")
{
"event": {
"portalType": "dfd",
"moduleCode": ,
"role": "3",
"roleCode": "dfdf",
"languageID": "gd",
"password": "dfdfgd",
"phoneNumber": "2332323",
"resourceCode": [
"8045005"
]
}}
是否可以通过上述json中的角色值限制用户? 如何使用API Manager 2.0实现这一目标?
答案 0 :(得分:2)
没有任何预定义的方式来实现此要求。但是,您可以自定义WSO2 API Manager以满足此要求。
如果请求有一些错误而不是发送到后端,您可以编写一个自定义处理程序来验证请求正文并返回响应。您可以查看here如何为API Manager 2.0编写自定义处理程序。
答案 1 :(得分:1)
您可以在"How to validate JSON request payload in API Manager"上查阅此文章。这完全符合您的使用案例,您只需要添加XSD以符合您的请求。在API Manager中,如果您需要验证请求或预处理消息,则始终建议使用产品可用的中介扩展。
答案 2 :(得分:0)
即将到来的请求将由消息构建器[1]转换为SOAP格式。将根据传入消息的内容类型选择此消息构建器。您可以为application / json编写自己的消息构建器并验证输入。例如[2]
[1] https://docs.wso2.com/display/ESB481/Working+with+Message+Builders+and+Formatters [2] https://github.com/anuruddhal/WSO2-ESB-Custom-Message-Builder/tree/master/CustomBuilder