updateRequirements 接口

updateRequirements 接口用于通过 XML 文件中的现有根节点更新需求。需求由需求树中的内部 Silk Central 节点 ID 标识。更新需求树节点和所有节点的子项。添加新节点,将丢失的节点设置为过时,移动的节点也同样在 Silk Central 中移动。调用的 HTTP 响应包含更改需求的 XML 结构。您可以从更新后的 XML 需求结构中获取新节点的标识符。

下表显示了 updateRequirements 接口的参数。

接口 URL 参数 说明

http://<front-end URL>/servicesExchange?hid=updateRequirements

sid 用于用户身份验证的 Web 服务令牌或会话标识符。您可以在 Silk Central UI 的设置页面中生成 Web 服务令牌。要访问此页面,请将鼠标光标悬停在 Silk Central 菜单中的用户名上,然后选择用户设置。您可以通过调用可用 Web 服务之一的 logonUser 方法来检索会话标识符。

示例:http://<front-end URL>/servicesExchange?hid=updateRequirements&sid=<webServiceToken>

用于验证需求的 XML 架构定义文件可以使用前端服务器 URL http://<前端服务器 URL>/silkroot/xsl/requirements.xsd 下载或从前端服务器安装文件夹 <Silk Central installation folder>/wwwroot/silkroot/xsl/requirements.xsd 复制。

updateRequirements Web 服务示例

以下代码使用 Apache HttpClient 来更新需求。

import org.apache.commons.httpclient.*; // Apache HttpClient
		
String webServiceToken = "e39a0b5b-45db-42db-84b2-b85028d954d5";
URL service = new URL("http", mWebServiceHelper.getHost(),
  mWebServiceHelper.getPort(), 
  String.format("/servicesExchange?hid=%s&sid=%s",
    "updateRequirements", webServiceToken));

HttpClient client = new HttpClient();
PostMethod filePost = new PostMethod(service.toExternalForm());
string xmlFile = loadRequirementsUtf8(fileName);
StringPart xmlFileItem = new StringPart("requirements", xmlFile,
  "UTF-8");
xmlFileItem.setContentType("text/xml");
Part[] parts = {xmlFileItem};

filePost.setRequestEntity(new MultipartRequestEntity(parts,
  filePost.getParams()));
client.getHttpConnectionManager().getParams().setConnectionTimeout(60000);
int status = client.executeMethod(filePost);
System.out.println(filePost.getStatusLine());

String responseXml = filePost.getResponseBodyAsString();

每个请求仅可上载一个附件。要下载 Apache HttpComponents,请访问 http://hc.apache.org/downloads.cgi。请参阅组件文档,了解所需的库。

需求示例

以下代码显示可通过 createRequirementsupdateRequirementsupdateRequirementsByExtID 服务上载至 Silk Central 的示例需求。

<?xml version="1.0" encoding="UTF-8"?>
<Requirement id="0" name="name" xmlns="http://www.borland.com/RequirementsSchema" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://<front-end URL>/silkroot/xsl/requirements.xsd">
	<ExternalId>myExtId1</ExternalId>
	<Description>Description</Description>
	<Priority value="Low" inherited="false"/>
	<Risk value="Critical" inherited="false"/>
	<Reviewed value="true" inherited="false"/>
	<Property inherited="false" name="Document" type="string">MyDocument1.doc</Property>
	<Requirement id="1" name="name" />
	<Requirement id="2" name="name1">
		<Requirement id="3" name="name" />
		<Requirement id="4" name="name1">
			<Requirement id="5" name="name" />
      <Requirement id="6" name="name1">
        <ExternalId>myExtId2</ExternalId>
        <Description>Another Description</Description>
        <Priority value="Medium" inherited="false"/>
        <Risk value="Critical" inherited="false"/>
        <Reviewed value="true" inherited="false"/>
        <Property inherited="false" name="Document" type="string">MyDocument2.doc</Property>
			</Requirement>
		</Requirement>
	</Requirement>
</Requirement>