0

是否可以使用变更管理系统的 OSLC-CM REST API 来修改变更请求的属性。我试图实现的系统是 Rational Change。我可以通过 REST API 浏览和查询,但要修改任何我需要求助于命令行的东西,速度相当慢。有办法吗?

BR,帕维尔

4

2 回答 2

1

要使用 OSLC-CM REST API 更新资源,您只需使用 HTTP PUT 即可。为此,您首先需要更改请求的 URL。

实现这一点的步骤(使用任何 HTTP 客户端)是:

  1. 获取更改请求的 URL(通常通过查询或存储的引用等完成)
  2. 在该 URL 上执行 HTTP GET,指定用于编辑的格式。这是使用“Accept”标头完成的,一些典型值是“application/xml”、“application/json”或“application/rdf+xml”。
    1. 请注意,最好设置标题“OSLC-Core-Verson: 2.0”,以确保您使用的是 2.0 格式。
  3. 获取资源后,将属性修改为所需的值。
  4. 使用 HTTP PUT,将内容正文中修改后的资源发送到您从中获取资源的同一 URL。
    1. 此外,您很可能需要传递一些额外的标头来帮助服务器检测任何可能的冲突。
  5. 您应该在成功时返回 200(OK)或 204(无内容)响应。

优化将执行与上述相同的步骤,但仅请求感兴趣的属性,并且仅使用OSLC 的选择性属性功能发送它们。

于 2014-01-08T15:24:49.937 回答
0

所以我终于在googlegroups的帮助下完成了它

回顾一下我所做的事情,以便其他人也可以受益(我真的已经搜索过它,IBM 文档在大多数情况下都没有帮助):

因此,要在 Rational Change 服务器上修改 PR/CR 的implement_actual_effort属性,以下过程是成功的(使用 Firefox REST 插件): 1. 在 Headers 集中:Accept to application/xmlContent-Type to application/xml

  1. 将 cr i URL 的 oslc 地址放在我的例子中是: http://[IP:PORT]/change/oslc/db/[DB hex ID]/role/User/cr/[web_encoded_name_of_the_CR]?oslc_cm.properties =change:implement_actual_effort (浏览器中的注释 http://[IP:PORT]/change/oslc/db/[DB hex ID]/role/User/cr/[web_encoded_name_of_the_CR] 将打开 CR/PR 的更改页面)
  2. 在 REST 客户端中,将 Method 设置为 GET 并按 SEND
  3. 点击响应正文(RAW),复制xml正文
  4. 将 Method 更改为 PUT,更改属性的值(在 Body 窗口中的 xml 中)
  5. 按发送
  6. 属性现在应该已更改,响应应该与您发送的内容相似,属性显示更改。

请注意,要更改属性(从 oslc 的角度称为属性),必须提供?oslc_cm.properties=[properties delimited with comma] 并且在请求正文 xml 中必须存在相同的属性,如果我没记错的话xml中没有提到属性,它将被设置为默认值

我希望这可以帮助别人

BR,

帕维尔

于 2013-11-05T12:11:29.370 回答