如何在WSO2 API管理器中使用无效的json主体忽略API调用

时间:2016-08-08 05:43:29

标签: json api wso2 wso2-am

我使用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实现这一目标?

3 个答案:

答案 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