REST API 请求日志记录与 RAW 请求分析指南

作者:API传播员 · 2025-10-11 · 阅读时间:4分钟
本文探讨了在开发REST API时记录请求日志的重要性,特别是在调试和排查问题时的应用。通过一个实际案例,详细介绍了如何捕获和记录完整的RAW请求消息及响应内容,包括使用POSTMAN验证请求和捕获RAW请求消息的方法,以及如何分析服务器返回的响应内容来定位问题。

REST API 请求日志记录指南

开发 REST API 时,记录请求日志是一个非常重要的环节,尤其是在调试和排查问题时。本文将以一个实际案例为例,探讨如何捕获和记录完整的 RAW 请求消息及响应内容,以便更好地分析问题。


遇到的问题

在进行第一个 REST 操作时,我尝试向网络中的内部服务器发送 API 请求。虽然成功完成了 SSL/TLS(安全套接字层/传输层安全)配置,但却遇到了以下错误:

ERROR<Ens>ErrHTTPStatus: 从远程 HTTP 服务器接收到非正常状态 403:“HTTP/1.1 403 Forbidden”。

为了排查问题,我尝试在操作中使用 $$$TRACE 捕获正在发送的不同元素,包括服务器、URL、SSL 配置和有效负载。然而,我仍然无法确定导致 403 错误 的具体原因。


如何查看 RAW 请求消息?

为了更深入地分析问题,我需要查看完整的 RAW 请求 消息,包括 Header 和 Data 元素。以下是一些可行的方法:

1. 使用 POSTMAN 验证请求

在 POSTMAN 中,我可以清楚地看到发送的请求内容,例如:

POST xxxxxxxxxxxxxxx

{
  "患者ID": "x",
  "患者IDType": "xxxxxxx",
  "ContactID": "x",
  "ContactIDType": "xxxx",
  "用户ID": "xxxxx",
  "用户IDType": "xxxxxxxxxx"
}

通过 POSTMAN,我确认了请求内容与操作中使用的变量一致。这让我进一步确信问题可能出在服务器端或请求的某些细节上。

2. 捕获 RAW 请求消息

为了验证操作中发送的内容,我需要在跟踪查看器中记录完整的 RAW 请求消息。这样可以帮助我分析请求的 Header 和 Data 是否正确配置。以下是一些建议:

  • 启用跟踪日志:通过 InterSystems 提供的工具,可以启用跟踪日志功能,将请求的 Header 和 Data 记录下来。
  • 检查 SSL/TLS 配置:确保 SSL/TLS 配置正确无误,避免因安全协议问题导致请求被拒绝。
  • 记录完整的响应:除了请求消息,还需要记录服务器返回的完整响应内容,以便更好地分析问题根源。

服务器返回的响应示例

以下是服务器返回的响应内容示例:

{
  "消息": "执行命令时出错:NO-PATIENT-FOUND details:找不到具有提供的ID和ID类型的患者..",
  "ExceptionMessage": "在执行命令时发生错误:NO-PATIENT-FOUND details: 找不到带有提供的ID和ID类型的患者..",
  "ExceptionType": "System.Web.HttpException",
  "StackTrace": null
}

从响应中可以看出,服务器明确指出了问题的原因:提供的患者 ID 和 ID 类型不匹配。这表明请求中可能缺少某些必要的标识符或参数。


总结与建议

在调试 REST API 请求时,记录完整的 RAW 请求消息和响应内容是非常重要的。以下是一些关键建议:

  1. 使用调试工具:如 POSTMAN 或类似工具,验证请求内容是否符合预期。
  2. 启用日志记录:通过 InterSystems 的跟踪查看器,记录请求的 Header 和 Data 元素。
  3. 检查配置:确保服务器地址、SSL/TLS 配置和请求参数正确无误。
  4. 分析响应:根据服务器返回的错误信息,定位问题的具体原因。

通过以上方法,可以更高效地排查问题并优化 REST API 的请求流程。


原文链接: https://community.intersystems.com/post/rest-api-request-logging