Mithilfe der Schnittstelle updateRequirements werden Anforderungen durch bestehende Stammknoten aus XML-Dateien aktualisiert. Die Anforderungen werden in der Anforderungshierarchie durch die interne Knoten-ID von Silk Central definiert. Der Knoten der Anforderungshierarchie und alle untergeordneten Knoten werden aktualisiert. Neue Knoten werden hinzugefügt und fehlende Knoten als obsolet gekennzeichnet. Verschobene Knoten werden wie in Silk Central verschoben. Die HTTP-Antwort des Aufrufs enthält die XML-Struktur der geänderten Anforderungen. Sie können die Kennungen der neuen Knoten der aktualisierten XML-Anforderungsstruktur entnehmen.
Die folgende Tabelle enthält die Parameter der Schnittstelle updateRequirements.
Schnittstellen-URL | Parameter | Beschreibung |
---|---|---|
http://<front-end URL>/servicesExchange?hid=updateRequirements |
sid | Webdienst-Token oder Sitzungs-ID für die Benutzerauthentifizierung. Sie können das Webdienst-Token auf der Einstellungsseite der Silk Central-Benutzeroberfläche generieren. Um auf diese Seite zuzugreifen, zeigen Sie mit dem Mauszeiger auf den Benutzernamen im Menü Silk Central und wählen Sie Benutzereinstellungen. Sie können die Sitzungs-ID abrufen, indem Sie die Methode logonUser für einen der verfügbaren Webdienste aufrufen. |
Beispiel: http://<front-end URL>/servicesExchange?hid=updateRequirements&sid=<webServiceToken>
Die Definitionsdatei für das XML-Schema, mit der überprüft wird, ob Anforderungen über den URL des Front-End-Servers http://<Host>/silkroot/xsl/requirements.xsd heruntergeladen oder aus dem Installationsordner <Silk Central-Installationsordner>/wwwroot/silkroot/xsl/requirements.xsd des Front-End-Servers kopiert werden können.
Im folgenden Quelltext werden die Anforderungen mithilfe von Apache HttpClient aktualisiert.
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();
Pro Anfrage kann nur ein Anhang hochgeladen werden. Apache HttpComponents können Sie von http://hc.apache.org/downloads.cgi herunterladen. Die erforderlichen Bibliotheken entnehmen Sie der Dokumentation der Komponente.
Der folgende Code zeigt ein Beispiel einer Anforderung, die mithilfe des Diensts Silk Central,createRequirements undupdateRequirements in updateRequirementsByExtID hochgeladen werden kann.
<?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>