通过 Windchill REST Services (WRS) 进行 Windchill 自定义
通过 Windchill REST Services (WRS) API,客户可以灵活自定义 Windchill,并与之进行交互。WRS API 通过 HTTP 运行,支持各种各样的请求和响应。
引入的新实用程序类 WRSCaller 可用于自定义。
WRSCaller 是一个 Java 包装器,用于调用 Windchill 版本中的任意可用 WRS 端点。此包装器充当 HTTP 客户端,可直接在类内部自动处理各种功能,例如身份验证和 nonce 令牌等。
对于通过 WRSCaller 进行的 WRS 调用,其运行方式如同从标准 HTTP 客户端触发一样:
• 封装 WRSCaller 调用的父事务无法回滚通过 WRSCaller (POST、PUT、PATCH、DELETE) 所做的数据修改。
• 采用当前承担者的访问控制。
|
请不要使用 WRSCaller 来创建自定义数据实用程序和事件监听器,也不要使用它来自定义 WRS (例如创建新域或扩展 PTC 域)。
|
在
WRSCaller 中,每个 HTTP 谓词 (GET、POST、PATCH、PUT 或 DELETE) 都有各自的方法签名,且将以 JSON 格式返回响应。对于 POST、PATCH 和 PUT,请求正文采用 JSON 格式。此外,批处理请求 (
$batch) 和架构请求 (
$metadata) 都有其各自的方法 (分别为
batch() 和
edm())。
edm() 方法以 XML 格式返回响应。
batch() 方法要求批处理请求正文遵循
OData 规范,特别是多部件/混合格式。
HTTP 响应封装在 ODataSerializableResponse 对象中。此对象中包含可由客户端用来处理错误或成功的响应状态代码 (例如 HTTP 200、HTTP 404 等)。ODataSerializableResponse 对象使用以下方法来获取响应正文和响应标头:
• getContent() - 以字节数组的形式返回响应正文。字节数组可以转换成各种格式,例如字符串或二进制,这具体取决于响应标头 Content-Type 的值。
• getHeader(<Header_Name>) - 检索作为参数进行传递的标头名称的标头值。
• getSkipToken() - 返回 $skiptoken 值 (如果响应中存在该值)。
• getContentAsJSON() - 作为 org.json.JSONObject 返回响应。如果响应的内容类型不是 JSON,则该方法会生成 UnsupportedOperationException。