WSO2DSS中的自定义错误消息和HTTP返回代码

WSO2DSS中的自定义错误消息和HTTP返回代码,wso2,wso2esb,wso2dss,Wso2,Wso2esb,Wso2dss,我正在使用Wso2 DSS,从oracle数据库构建RESTful Web服务,并尝试在没有发现记录或使用无效参数调用记录的情况下返回自定义错误消息。 我还想控制这些错误响应的HTTP返回代码 比如说。假设有一个webservice:/getemployee/{empno}以JSON/XML格式返回员工详细信息 如果我使用数据库中不存在的empno调用getemployee,那么 我希望回复类似于下面的内容 未找到任何员工 它不应具有正常的员工详细信息消息结构,当找到员工时,该结构将作为响应

我正在使用Wso2 DSS,从oracle数据库构建RESTful Web服务,并尝试在没有发现记录或使用无效参数调用记录的情况下返回自定义错误消息。 我还想控制这些错误响应的HTTP返回代码

比如说。假设有一个webservice:/getemployee/{empno}以JSON/XML格式返回员工详细信息

如果我使用数据库中不存在的empno调用getemployee,那么

  • 我希望回复类似于下面的内容

    未找到任何员工

  • 它不应具有正常的员工详细信息消息结构,当找到员工时,该结构将作为响应。 此时,如果底层查询未找到记录,DSS只返回带有根元素的空消息

  • 此响应的HTTP返回代码应该是404,而不是成功代码200。 默认情况下,所有响应在DSS中获得HTTP返回码200
  • 仅仅使用DSS就可以做到这一点吗


    感谢您的帮助

    您需要WSO2 ESB才能做到这一点。您可以在ESB中创建一个代理服务,该服务将调用DSS,然后根据其内容和您的需要为您转换响应。您可以使用XSLT实现这一点

    您可以使用属性HTTP\u SC手动设置所需的HTTP返回代码:

    <property name="HTTP_SC" scope="axis2" type="STRING" value="404"/>
    
    
    

    如果您知道将接收到什么,并且输出将是静态的,那么您也可以使用开关和有效负载工厂

    您需要WSO2 ESB来实现这一点。您可以在ESB中创建一个代理服务,该服务将调用DSS,然后根据其内容和您的需要为您转换响应。您可以使用XSLT实现这一点

    您可以使用属性HTTP\u SC手动设置所需的HTTP返回代码:

    <property name="HTTP_SC" scope="axis2" type="STRING" value="404"/>
    
    
    

    如果您知道将接收到什么,并且输出将是静态的,那么您也可以使用开关和有效负载工厂

    您可以将WSO2 ESB放在中间,还是将DSS特性添加到WSO2 ESB中?您可以将WSO2 ESB置于中间,或者只是将DSS特性添加到WSO2 ESB中?谢谢。我在DSS中尝试过XSLT,但当使用者请求返回格式为JSON时,它不支持JSON。您确定可以使用ESB控制HTTP返回代码吗?我试试看。是的,您可以使用属性HTTP_SC设置HTTP代码。谢谢。我在DSS中尝试过XSLT,但当使用者请求返回格式为JSON时,它不支持JSON。您确定可以使用ESB控制HTTP返回代码吗?我试试看。是的,您可以使用属性HTTP\u SC设置HTTP代码。