IPS 웹 서비스 WSDL 버전

IPS 웹 서비스는 IPS 웹 서비스 구성 요소가 설치된 IPS 설치에서 액세스하는 WSDL(웹 서비스 설명 언어) 문서 집합에서 지원됩니다. 각 IPS API 릴리스에는 버전이 지정된 대상 XML 네임스페이스를 참조하는 새 WSDL 파일이 포함되어 있습니다. 이전 WSDL 네임스페이스 버전도 기존 응용 프로그램과의 이전 호환성을 위해 지원됩니다.

WSDL 액세스

아래 표시된 대로 Scene7 WSDL에 액세스합니다.

https://<IPS_hostname:<IPS_port>/<IPS_webapp>/
webservice/IpsApi[-<API_version>].wsdl

<IPS_webapp>의 기본값은 scene7입니다.

서비스 위치

서비스 URL은 IPS 웹 서비스 WSDL 문서의 서비스 섹션에 지정되어 있습니다. 서비스 URL은 일반적으로 다음과 같은 형식입니다.

https://<IPS_hostname>:<IPS_port>/<IPS_webapp>/
services/IpsApiService

Dynamic Media 지역의 URL 액세스

지리적 위치

프로덕션 URL

스테이징 URL(사전 프로덕션 개발 및 테스트에 사용)

북미

https://s7sps1apissl.scene7.com/scene7/

https://s7sps1apissl-staging.scene7.com/scene7/

유럽, 중동, 아시아

https://s7sps3apissl.scene7.com/scene7/

https://s7sps3apissl-staging.scene7.com/scene7/

일본/아시아 태평양

https://s7sps5apissl.scene7.com/scene7/

https://s7sps5apissl-staging.scene7.com/scene7/

지원되는 WSDL

최신 버전의 IPS API에 기능을 사용하려면 코드를 수정해야 할 수 있습니다. IPS API는 다음 버전에 대해 WSDL을 지원합니다.

API 릴리스 버전

WSDL

API 네임스페이스

6.8/2014R1

IpsApi-2014-04-03.wsdl

http://www.scene7.com/IpsApi/xsd/2014-04-03

6.6/2013R1

IpsApi-2013-02-15.wsdl

http://www.scene7.com/IpsApi/xsd/2013-02-15

6.0/2012R1

IpsApi-2012-02-14.wsdl

http://www.scene7.com/IpsApi/xsd/2012-02-14

4.5

IpsApi-2010-01-31.wsdl

http://www.scene7.com/IpsApi/xsd/2010-01-31

4.4

IpsApi-2009-07-31.wsdl

http://www.scene7.com/IpsApi/xsd/2009-07-31

4.2

IpsApi-2008-09-10.wsdl

http://www.scene7.com/IpsApi/xsd/2008-09-10

4.0

IpsApi-2008-01-15.wsdl

http://www.scene7.com/IpsApi/xsd/2008-01-15

4.0 이전

IpsApi.wsdl

http://www.scene7.com/IpsApi/xsd

새 기능을 사용하기 위해 수정해야 하는 기존 애플리케이션은 최신 API 버전으로 업그레이드해야 하며 기존 코드를 변경해야 할 수 있습니다. 자세한 내용은 변경 로그를 참조하십시오.

SOAP

바인딩

IPS API 웹 서비스는 SOAP 바인딩만 지원합니다.

지원되는 전송

IPS API SOAP 바인딩은 HTTP 전송만 지원합니다. HTTPS POST 방법을 사용하여 모든 SOAP 요청을 수행합니다.

SOAP 작업 헤더

요청을 처리하려면 SOAPAction HTTP 헤더를 요청한 작업의 이름으로 설정합니다. WSDL 바인딩 섹션의 작업 이름 특성은 이름을 지정합니다.

메시지 포맷

문서/리터럴 스타일은 WSDL 파일에 지정된 XML 스키마 정의 언어( https://www.w3.org/TR/xmlschema-0/)를 기반으로 하는 형식의 모든 입력 및 출력 메시지에 사용됩니다. 모든 유형에는 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>

필드

이름

설명

사용자

유효한 IPS 사용자 전자 메일

암호

사용자 계정의 암호입니다.

로케일

요청에 대한 선택적 로캘입니다. 자세한 내용은 로케일을 참조하십시오.

appName

응용 프로그램 이름을 호출하는 중입니다. 이 매개 변수는 선택 사항이지만 모든 요청에 포함하는 것이 좋습니다.

appVersion

애플리케이션 버전을 호출하는 중입니다.

gzipResponse

응답 XML의 gzip 압축을 활성화하거나 비활성화하는 선택적 플래그입니다. 기본적으로 HTTP Accept-Encoding 헤더가 gzip에 대한 지원을 나타내는 경우 응답이 gzip 압축됩니다.

faultHttpStatusCode

오류 응답에 대한 HTTP 상태 코드를 재정의하는 선택적 매개 변수입니다. 기본적으로 오류 응답은 HTTP 상태 코드 500(내부 서버 오류)을 반환합니다. Adobe Flash을 포함한 일부 클라이언트 플랫폼은 상태 코드 200(OK)이 반환되지 않는 한 응답 본문을 읽을 수 없습니다.

authHeader 요소는 API 버전에 관계없이 항상 http://www.scene7.com/IpsApi/xsd 네임스페이스에 정의됩니다.

다음은 요청 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 기본 인증의 경우 각 SOAP POST 요청의 HTTP 헤더 섹션에는 양식의 헤더가 포함되어야 합니다.

Authorization: Basic base64(<IPS_user_email>:<password>)

여기서 base64()은 표준 Base64 인코딩을 적용하고 <IPS_user_email>은 유효한 IPS 사용자의 이메일 주소이고 <password>는 사용자의 암호입니다.

초기 요청 시 승인 헤더를 미리 보내십시오. 요청에 인증 자격 증명이 포함되지 않으면 IpsApiService이(가) 401 (Unauthorized)의 상태 코드로 응답하지 않습니다. 대신, 500 (Internal Server Error) 상태 코드가 SOAP 오류 본문과 함께 반환되어 요청을 인증할 수 없음을 나타냅니다.

IPS 3.8 이전에는 네임스페이스 http://www.scene7.com/IpsApiAuthUserAuthPassword 요소를 사용하여 SOAP 헤더를 통한 인증이 구현되었습니다. 예:

<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 요소를 위해 더 이상 사용되지 않습니다.

권한 부여 요청

호출자의 자격 증명이 인증되면 요청자가 요청된 작업을 수행할 수 있도록 요청을 확인합니다. 권한 부여는 호출자의 사용자 역할을 기반으로 하며 대상 회사, 대상 사용자 및 기타 작업 매개 변수를 확인해야 할 수도 있습니다. 또한, Image Portal 사용자는 특정 폴더 및 자산 작업을 수행하려면 필요한 권한이 있는 그룹에 속해야 합니다. 작업 참조 섹션에서는 각 작업에 대한 인증 요구 사항에 대해 자세히 설명합니다.

샘플 SOAP 요청 및 응답

다음 예제는 HTTP 헤더를 포함하여 전체 addCompany 작업을 보여 줍니다.

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>

이 페이지에서는