SuperAPI AI 工具集

rest-integration

编程与开发

查看项目

更新于 10-16 02:12

技能介绍

用途

该技能面向 ServiceNow 平台,讲解如何通过 sn_ws.RESTMessageV2 发起出站 REST API 调用,用于与外部系统集成。ServiceNow 同时提供 RESTMessageV2 用于出站调用,以及 REST API 用于入站请求。

主要能力

  • 发起基础 GET 请求:设置 endpoint、HTTP 方法、请求头,执行后读取状态码与响应体。
  • 发起带 JSON 请求体的 POST 请求:设置 Content-Type 与 Accept 头,将对象序列化后作为请求体发送。
  • 使用 REST Message 记录:通过 sys_rest_message 中预定义的 REST Message 复用集成配置,并用 setStringParameter 设置变量替换。
  • 认证方式:支持 Basic 认证(setBasicAuth)、Bearer Token(Authorization 头)、OAuth 2.0(setAuthenticationProfile 指定 OAuth Profile)、API Key(请求头或查询参数)。
  • 错误处理:按 HTTP 状态码分支处理(200、401、404、5xx 等),并用 try/catch 捕获异常。
  • 响应处理:解析 JSON 响应、访问嵌套数据、遍历数组、读取响应头(如 Content-Type、X-RateLimit-Remaining)。
  • MCP 工具:提供 snow_create_rest_message 创建 REST Message 记录,以及 snow_test_rest_connection 测试 REST 连接。

使用方式

代码示例展示了多种调用模式:直接实例化 sn_ws.RESTMessageV2 并设置 endpoint、方法、请求头与请求体;或使用预定义 REST Message 名称与方法名构造请求。认证通过 setBasicAuth、Authorization 头、setAuthenticationProfile 或 X-API-Key 头/查询参数实现。错误处理中可设置 setHttpTimeout 控制超时,并按状态码分别记录日志。响应可通过 getBody 获取后 JSON.parse 解析,通过 getHeader 读取响应头。

适用场景

适用于需要在 ServiceNow 中调用外部 REST API 的集成场景,例如获取用户列表、创建工单、与第三方系统交换数据等。

限制与最佳实践

资料中给出的最佳实践包括:使用 REST Message 记录以集中配置、便于维护;设置超时防止脚本挂起;处理所有状态码而非仅 200;用 gs.error() 记录失败;对慢速 API 使用异步避免阻塞业务规则;使用 Connection & Credential Aliases 安全存储凭据;对瞬时故障实现重试逻辑;关注速率限制并实现退避。重试模式示例展示了基于最大重试次数、指数退避(延迟翻倍)以及区分服务端错误(可重试)与客户端错误(不重试)的实现方式。