在 REST API 中实现错误处理程序
使用 REST API Description 视图在 REST API 中实现错误处理程序。
准备工作
关于此任务
有三种类型的错误处理程序适用于 REST API:
- 捕获
- 如果处理子流中对操作的请求时抛出了异常,并且该子流未处理该异常,那么会将一条消息路由到 Catch 错误处理程序。 例如,如果操作的子流中的 JavaCompute 节点抛出异常,并且 TryCatch 节点未捕获到该异常,那么会将该异常传递到 Catch 错误处理程序。
- Timeout
- 如果操作的子流正在处理消息,并且该子流未在期望的时间限制内对客户机作出响应,那么会将一条消息路由到“超时”错误处理程序。 然后,可以使用超时错误处理程序将响应传递回客户机,以通知客户机该操作已超时。 如果发生这种情况,那么操作的子流将继续处理该消息。 不会取消对该消息的处理。 但是,无法发送对客户机的响应。注: 根据客户机的不同,客户机可能会超时而不接收来自调用操作的响应,在这种情况下,不会接收到发送的任何响应。
- 失败
- 如果处理来自客户机的请求时发生错误,并且该错误未由“捕获”或“超时”错误处理程序处理,那么会将一条消息路由到“故障”错误处理程序。
REST API 中的错误处理程序以子流形式实现。 您必须使用 IBM App Connect Enterprise 工具包 ,为每个错误处理程序创建一个空子流程。 然后,您可以通过在子流程中添加 IBM App Connect Enterprise 中提供的任何标准消息流节点来实现错误处理程序。
如果您未实现错误处理程序,那么将使用缺省的错误处理行为。 如果未实现 "捕获" 错误处理程序或 "故障" 错误处理程序,那么会使用以下命令将异常抛出回客户机:HTTP 500 Internal Server Error状态码。 如果未实现超时错误处理程序,那么将使用以下命令将超时异常抛出回客户机:HTTP 504 Gateway Timeout状态码。
过程
要在 REST API 中实现错误处理程序,请完成下列步骤:
- 打开要为其实现错误处理程序的 REST API 的 REST API Description 。REST API Description 位于 REST API 项目下的 "应用程序开发" 视图 中。
- 在 REST API Description中找到错误处理程序。错误处理程序在“错误处理”标题下列出。
根据您是使用了 Swagger 文档还是 OpenAPI3 文档创建 REST API,完成以下其中一个步骤。
- 可选: 如果使用 Swagger 文档创建了 RESTAPI ,请单击 实现 <error_handler_type> 错误处理程序链接,其中 <error_handler_type> 是错误处理程序类型。这将自动创建新子流并将其打开。 REST API Description 上的链接将更改为 Open the <error_handler_type> 错误处理程序,如果单击该链接,那么现有子流将重新打开。
- 可选: 如果已使用 OpenAPI 3.0 文档创建 REST API ,请单击 创建子流 以创建子流。您还可以使用 " OpenAPI 编辑器 配置 " 选项卡来实现基于 OpenAPI 3.0的 REST API 的错误处理程序。
结果
后续操作
您还可以完成下列可选任务:
- 使用 REST API Description 视图来实现 REST API 中的操作,请参阅 使用 REST API 编辑器 for Swagger 2 文档实现 REST API 中的操作 或 基于 OpenAPI 3.0 文档实现 REST API 的操作。
- 使用 HTTPS 加密客户端和服务器之间的通信,从而保护您的REST API,请参阅使用 HTTPS 保护REST API。
- 通过使用 HTTP 基本身份验证对用户进行身份验证来保护您的 REST API,请参阅使用 HTTP 基本身份验证保护 REST API。
- 如果您的 REST API 将由在 Web 浏览器中运行的客户机端代码使用,那么您可能必须配置 跨源资源共享,请参阅 允许 Web 浏览器使用跨源资源共享来访问 REST API。
- 您可以使用 ACE REST API 编辑器中的"消息验证"设置对 REST API 启用 JSON 验证。 有关 JSON 验证的更多信息,请参阅 JSON 验证。
- 缺省情况下,REST API 配置为处理 JSON 数据。 如果要处理非 JSON 数据,请参阅 在 REST API 中处理非 JSON 数据。