IPS Web服務WSDL版本 ips-web-service-wsdl-versions
IPS Web服務由一組WSDL (Web服務描述語言)檔案支援,這些檔案可從任何安裝IPS Web服務元件的IPS安裝存取。 每個IPS API版本都包含新的WSDL檔案,該檔案會參照版本化的目標XML名稱空間。 也支援先前的WSDL名稱空間版本,以便與現有應用程式回溯相容。
WSDL存取 section-62e69fa2c87f4dc9bca72f10ba028f6c
存取Scene7 WSDL,如下所示。
https://<IPS_hostname:<IPS_port>/<IPS_webapp>/
webservice/IpsApi[-<API_version>].wsdl
<IPS_webapp>
的預設值為scene7
。
服務位置
服務URL是在IPS Web服務WSDL檔案的服務區段中指定的。 服務URL通常採用以下形式:
https://<IPS_hostname>:<IPS_port>/<IPS_webapp>/
services/IpsApiService
存取Dynamic Media地區的URL
支援的WSDL section-ebbba69880f94e9c823f1147974eb404
請記住,如果您想要使用最新版IPS API的功能,您可能需要修改程式碼。 IPS API支援下列版本的WSDL:
現有應用程式若需修改以使用新功能,必須升級至最新的API版本,且可能需要變更現有程式碼。 如需詳細資訊,請參閱變更記錄。
SOAP section-51e7ecbd1d7f451b9e4f6bf7e1579cae
繫結
IPS API Web服務僅支援SOAP繫結。
支援的傳輸
IPS API SOAP繫結僅支援HTTP傳輸。 使用HTTPSPOST方法提出所有SOAP要求。
SOAP動作標題
若要處理要求,請將SOAPAction HTTP標頭設定為要求之作業的名稱。 WSDL繫結區段中的作業名稱屬性指定了名稱。
訊息格式
檔案/常值樣式用於所有輸入和輸出訊息,其型別以XML結構描述定義語言( https://www.w3.org/TR/xmlschema-0/)為基礎,並在WSDL檔案中指定。 所有型別都需要使用WSDL檔案中指定的目標名稱空間值的限定名稱。
要求驗證
在API要求中傳遞驗證認證的偏好方法,是使用IPS API WSDL中定義的authHeader
元素。
<element name="authHeader">
<complexType>
<sequence>
<element name="user" type="xsd:string"/>
<element name="password" type="xsd:string"/>
<element name="locale" type="xsd:string" minOccurs="0"/>
<element name="appName" type="xsd:string" minOccurs="0"/>
<element name="appVersion" type="xsd:string" minOccurs="0"/>
<element name="gzipResponse" type="xsd:boolean" minOccurs="0"/>
<element name="faultHttpStatusCode" type="xsd:int" minOccurs="0"/>
</sequence>
</complexType>
</element>
欄位
authHeader
專案一律在名稱空間http://www.scene7.com/IpsApi/xsd
中定義,不論API版本為何。
以下是在請求SOAP標頭中使用authHeader
元素的範例:
<soap:Header xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<authHeader xmlns="http://www.scene7.com/IpsApi/xsd">
<user>user@scene7.com</user>
<password>mypassword</password>
<appName>MyApp</appName>
<appVersion>1.0</appVersion>
</authHeader>
</soap:Header>
其他要求驗證方法
如果因為某些原因,您的使用者端應用程式無法傳遞authHeader
SOAP標頭,API要求也可以使用HTTP基本驗證(如RFC 2617所指定)來指定認證。
對於HTTP基本驗證,每個SOAPPOST請求的HTTP標頭區段都必須包含表單的標頭:
Authorization: Basic base64(<IPS_user_email>:<password>)
其中base64()
套用標準Base64編碼,<IPS_user_email>
為有效IPS使用者的電子郵件地址,<password>
為使用者的密碼。
使用初始請求先發制人地傳送Authorization標頭。 如果要求中未包含任何驗證認證,IpsApiService
不會以狀態碼401 (Unauthorized)
回應。 而是傳回500 (Internal Server Error)
的狀態碼,並傳回SOAP錯誤內文,指出無法驗證要求。
在IPS 3.8之前,透過SOAP標頭使用名稱空間http://www.scene7.com/IpsApi
中的AuthUser
和AuthPassword
元素實作驗證。 例如:
<soap:Header xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<AuthUser xmlns="http://www.scene7.com/IpsApi">user@scene7.com</AuthUser>
<AuthPassword xmlns="http://www.scene7.com/IpsApi">mypassword</AuthPassword>
</soap:Header>
此樣式仍支援回溯相容性,但已由authHeader
專案取代。
要求授權
在呼叫者的認證通過驗證之後,會檢查請求以確保呼叫者有權執行請求的操作。 授權是以呼叫者的使用者角色為基礎,可能也需要檢查目標公司、目標使用者和其他作業引數。 此外,影像入口網站使用者必須屬於具有執行特定檔案夾和資產作業所需許可權的群組。 作業參考區段詳細說明每個作業的授權需求。
範例SOAP要求與回應
下列範例顯示完整的addCompany
作業,包括HTTP標頭:
POST /scene7/services/IpsApiService HTTP/1.1
User-Agent: Axis/2.0
SOAPAction: addCompany
Content-Type: text/xml; charset=UTF-8
<?xml version='1.0' encoding='UTF-8'?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Header>
<authHeader xmlns="http://www.scene7.com/IpsApi/xsd">
<user>user@scene7.com</user>
<password>mypassword</password>
<appName>MyApp</appName>
<appVersion>1.0</appVersion>
</authHeader>
</soapenv:Header>
<soapenv:Body>
<ns1:addCompanyParam xmlns:ns1="http://www.scene7.com/IpsApi/xsd/2008-01-15">
<ns1:companyName>Sample Company</ns1:companyName>
<ns1:expires>2008-07-31T12:00:00-06:00</ns1:expires>
</ns1:addCompanyParam>
</soapenv:Body>
</soapenv:Envelope>
以及對應的回應:
HTTP/1.1 200 OK
Server: Apache-Coyote/1.1
Content-Type: text/xml;charset=UTF-8
Transfer-Encoding: chunked
Date: Fri, 21 Jul 2006 20:47:55 GMT
<?xml version='1.0' encoding='utf-8'?><soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Header />
<soapenv:Body>
<ns1:addCompanyReturn xmlns:ns1="http://www.scene7.com/IpsApi/xsd/2008-01-15">
<ns1:companyInfo>
<ns1:companyHandle>2</ns1:companyHandle>
<ns1:name>Sample Company</ns1:name>
<ns1:rootPath>SampleCompany/</ns1:rootPath>
<ns1:expires>2008-07-31T18:00:00.000Z</ns1:expires>
</ns1:companyInfo>
</ns1:addCompanyReturn>
</soapenv:Body>
</soapenv:Envelope>
SOAP錯誤
當作業遇到例外狀況時,會傳回SOAP錯誤作為SOAP訊息的主體,以取代正常回應。 例如,如果非管理員使用者嘗試傳送先前addCompany
個請求,則會傳回下列回應:
HTTP/1.1 500 Internal Server Error
Server: Apache-Coyote/1.1
Content-Type: text/xml;charset=UTF-8
Transfer-Encoding: chunked
Date: Fri, 21 Jul 2006 16:36:20 GMT
Connection: close
<?xml version='1.0' encoding='utf-8'?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Header />
<soapenv:Body>
<soapenv:Fault>
<faultcode>soapenv:Client</faultcode>
<faultstring>AuthorizationException</faultstring>
<detail>
<ns1:authorizationFault xmlns:ns1="http://www.scene7.com/IpsApi/xsd">
<code xmlns="http://www.scene7.com/IpsApi/xsd">20003</code>
<reason xmlns="http://www.scene7.com/IpsApi/xsd">User does not
have permission to access operation 'addCompany'</reason>
</ns1:authorizationFault>
</detail>
</soapenv:Fault>
</soapenv:Body>
</soapenv:Envelope>