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

Custom error messages and HTTP return codes in WSO2DSS

我正在使用 Wso2 DSS 并从 Oracle DB 构建 RESTful 网络服务,并尝试 return 自定义错误消息,以防找不到任何记录或使用无效参数调用。 而且我还想控制这些错误响应的 HTTP return 代码。

例如。假设有一个网络服务:/getemployee/{empno} returns JSON/XML 格式的员工详细信息。

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

  1. 我希望响应类似于下面的内容

    <Error>

    <Error_code>No employee found </Error_code>

    </Error>

它不应该具有在找到员工时作为响应的正常员工详细信息消息结构。 目前,如果底层查询 DSS 未找到记录,则只是 return 仅包含根元素的空消息。

  1. 此响应的 HTTP return 代码应为 404,而不是成功代码 200。 默认情况下,所有响应都会在 DSS 中获得 HTTP return 代码 200。

仅使用 DSS 就可以做到这一点吗?

感谢您的帮助

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

您可以手动设置所需的 HTTP return 代码,使用 属性 HTTP_SC:

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

您也可以使用 switch 和 payload factory,如果您知道您将收到什么并且输出将是静态的。