将对象链接到 REST Web 服务
可以使用对象设计器将 REST Web 服务行为添加到对象,提供与 Ivanti 自动化等其他应用程序集成的各种选项。
这是供熟悉 REST、JSON、Postman 和 Swagger 等技术的人员使用的高级功能。如果希望 Ivanti 专业服务帮助您使用此功能,请联系您的供应商。
在配置 Service Desk 之前
在开始配置 Service Desk 中的行为之前,我们建议首先使用 Swagger 和 Postman 等工具来设计并配置与端点的交互,以帮助您进行任何需要的调试。在以这种方式测试交互之后,就可以配置 Service Desk 以复制这些交互。
我们还建议在开发实例中设计这些新部分,对其进行全面测试,然后将这些设计转移到生产中,而不是将任何新内容直接应用到生产环境。有关更多详细信息,请参阅将 REST 设计推行到生产环境。
配置 Service Desk
在 Service Desk 外部设计并测试 RESTful API 调用之后,在 Service Desk 设计器中复制这些交互。请注意,只有在创建具有该 REST 行为的对象的实例时,才会进行 REST 调用。如果再次更新并保存对象,不会发送另一个 REST 调用。
第一步是将 REST Web 服务行为添加到要用于与端点集成的对象。
将 REST Web 服务行为添加到对象:
- 在对象设计器中,打开要使用 REST Web 服务的对象。
- 选择属性树顶部的对象,然后在属性网格中的行为旁边单击 。
出现“行为选择”对话框。 - 在可用项目列表中选择 REST Web 服务,然后点击 。
REST Web 服务移动到选中的项目列表。 - 单击确定并保存更改。
“行为选择”对话框关闭,而属性网格中会出现一个新项目,即 REST Web 服务。
同样,对象上会创建四个新属性:REST 服务创建请求主体、REST 服务创建状态、REST 服务创建请求 URI 以及名为 REST 服务创建请求主体模板的关系,它是与名为 ObjectBody 的新参考列表对象之间的关系。(其中 Object 是向其添加了行为的对象的名称。) - 在属性网格中,点击 REST Web 服务旁边的 。
随即显示“REST Web 服务”对话框。 - 在请求选项卡的端点 URI 字段中输入要使用的端点的 URI。
- 根据需要选择 POST、PATCH 或 DELETE。
POST 通常用于创建项目,而 PATCH 用于更新现有项目。如果要使用 REST Web 服务来创建项目,然后使用 REST Web 服务来更新同一个项目,则需要创建两个对象:一个使用 POST 来创建项目,另一个使用 PATCH 来更新项目。 - 在内容类型下拉列表中,选择要发送的内容类型。
- 在身份验证类型列表中,选择所需的身份验证类型:无、基本、API 密钥(标题)、OAuth2(客户端凭据)或 OAuth2(密码),并根据需要选择其他参数。
- 单击确定。
需要为创建的任何新对象创建窗口。
可以在端点 URI 字段中纳入占位符变量。此操作通常用于 PATCH。
有时候可能需要暂时关闭 REST 行为。可以通过清除“REST Web 服务”对话框上的启用复选框,为特定对象执行此操作。
如果要对通过 REST Web 服务创建的记录执行进一步操作,则需要指定外部应用程序返回的唯一标识符的路径,以及要在 Service Desk 中存储此信息的位置。
要存储唯一标识符:
- 在“行为选择”对话框的响应映射选项卡上,在源字段中输入外部应用程序返回的唯一标识符的路径。
可以使用点记法来标识源负载中的项目。如果要使用整个响应,则输入 *。 - 在目标字段中,输入要在 Service Desk 中存储返回值的类型字符串的 Service Desk 属性。
其形式为 {_Request/Field}。 - 在接受下拉列表中,选择期望接收的内容类型。
如果选择 XML 格式,请指定 XML 命名空间,用空格分隔多个命名空间的名称。例如,xmlns:h="http://www.w3.org/TR/html4/" xmlns:r="http://www.example.com/example/" - 单击确定。
在配置 Service Desk 对象与端点之间的链接之后,就可以指定要发送的负载的主体。负载必须为 JSON 或 XML。某些端点可接受多个不同的负载。例如,Ivanti 自动化提供的单个端点可接受多个 Runbook 的负载,包含在负载的主体中指定的所需 Runbook。
因此,在添加 REST Web 服务行为时,会创建与 ObjectBody 参考列表对象之间的 REST 服务创建请求主体模板关系。这样可以创建参考列表(有关详细信息,请参阅创建新的参考列表)以存储不同的负载主体,然后在过程中提供用于选择适当的参考列表实例的机制(例如通过在自动操作上使用值类型;有关详细信息,请参阅为自动操作指定动态值)。通过将与指定自动操作中的动态值时使用的那些类似的占位符添加到 ObjectBody 中,可以将从 Service Desk 的对象实例中提取的值纳入负载。如果使用占位符变量,请在 RESTful 对象的上下文中它们。
每个具有 REST 行为的对象在包含适当的负载主体的相应参考列表中必须具有至少一个项目。
可以使用 Swagger 等工具对端点进行调用,帮助设计此负载。
要查看使用 REST Web 服务通过 Ivanti 自动化来自动履行请求的样例,请参阅 Ivanti 社区。