IPS Web Service WSDL-versies ips-web-service-wsdl-versions
De IPS Dienst van het Web wordt gesteund door een reeks documenten van WSDL (de Taal van de Beschrijving van de Diensten van het Web) die van om het even welke IPS installatie worden betreden waarop de IPS component van de Dienst van het Web geïnstalleerd is. Elke IPS API-release bevat een nieuw WSDL-bestand dat verwijst naar een versioned doel-XML-naamruimte. Eerdere WSDL-naamruimteversies worden ook ondersteund voor achterwaartse compatibiliteit met bestaande toepassingen.
WSDL-toegang section-62e69fa2c87f4dc9bca72f10ba028f6c
Open de Scene7 WSDL's zoals hieronder wordt weergegeven.
https://<IPS_hostname:<IPS_port>/<IPS_webapp>/
webservice/IpsApi[-<API_version>].wsdl
De standaardwaarde voor <IPS_webapp>
is scene7
.
Servicelocatie
De dienst URL wordt gespecificeerd in de dienstsectie van het IPS document van WSDL van de Dienst van het Web. De service-URL heeft doorgaans de volgende notatie:
https://<IPS_hostname>:<IPS_port>/<IPS_webapp>/
services/IpsApiService
Toegang tot URL's voor Dynamic Media-regio's
Ondersteunde WSDL's section-ebbba69880f94e9c823f1147974eb404
Herinner me, kunt u uw code moeten wijzigen als u eigenschappen in de recentste versie van IPS API wilt gebruiken. IPS API steunt WSDLs voor de volgende versies:
Bestaande toepassingen die moeten worden aangepast om nieuwe functies te kunnen gebruiken, moeten een upgrade uitvoeren naar de nieuwste API-versie en moeten mogelijk wijzigingen aanbrengen in bestaande code. Zie het veranderingslogboek voor details.
SOAP section-51e7ecbd1d7f451b9e4f6bf7e1579cae
Bindingen
De IPS API Dienst van het Web steunt slechts een band van de ZEEP.
Ondersteunde transporten
De IPS API band van de ZEEP steunt slechts het vervoer van HTTP. Maak alle verzoeken van de ZEEP gebruikend de methode van de POST HTTPS.
Koptekst van SOAP-actie
Als u een aanvraag wilt verwerken, stelt u de HTTP-header van SOAPAction in op de naam van de gevraagde bewerking. Het attribuut van de verrichtingsnaam in de WSDL bindende sectie specificeert de naam.
Berichtindeling
De document/letterlijke stijl wordt gebruikt voor alle invoer- en uitvoerberichten met typen die zijn gebaseerd op de definitietaal van het XML-schema ( https://www.w3.org/TR/xmlschema-0/) en opgegeven in het WSDL-bestand. Alle typen vereisen gekwalificeerde namen met gebruik van de naamruimtewaarde van het doel die in het WSDL-bestand is opgegeven.
Verificatie aanvragen
De voorkeursmethode voor het doorgeven van verificatiereferenties in API-aanvragen is het gebruik van de authHeader
element zoals die in IPS API WSDL wordt bepaald.
<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>
Velden
De authHeader
element is altijd gedefinieerd in de naamruimte http://www.scene7.com/IpsApi/xsd
, ongeacht de API-versie.
Hieronder ziet u een voorbeeld van het gebruik van de authHeader
element in een SOAP-aanvraagkoptekst:
<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>
Andere methoden voor aanvraagverificatie
Als het om een of andere reden niet mogelijk is dat uw clienttoepassing authHeader
SOAP kopbal, kunnen de API verzoeken geloofsbrieven ook specificeren gebruikend de Basisauthentificatie van HTTP (zoals gespecificeerd in RFC 2617).
Voor HTTP Basic-verificatie moet de HTTP-headersectie van elke SOAP-POST-aanvraag een header van het formulier bevatten:
Authorization: Basic base64(<IPS_user_email>:<password>)
Wanneer base64()
past de standaard Base64-codering toe, <IPS_user_email>
is het e-mailadres van een geldige IPS-gebruiker, en <password>
is het wachtwoord van de gebruiker.
Verzend de koptekst voor autorisatie op voorhand met het eerste verzoek. Als de aanvraag geen verificatiereferenties bevat, IpsApiService
reageert niet met een statuscode van 401 (Unauthorized)
. In plaats daarvan, een statuscode van 500 (Internal Server Error)
is teruggekeerd met een de foutenlichaam die van de ZEEP verklaren dat het verzoek niet kon worden voor authentiek verklaard.
Vóór IPS 3.8, werd de authentificatie door de kopbal van de ZEEP uitgevoerd gebruikend AuthUser
en AuthPassword
elementen in de naamruimte http://www.scene7.com/IpsApi
. Bijvoorbeeld:
<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>
Deze stijl wordt nog steeds ondersteund voor achterwaartse compatibiliteit, maar is vervangen door de authHeader
element.
Verzoek om toestemming
Nadat de geloofsbrieven van de bezoeker voor authentiek worden verklaard, wordt het verzoek gecontroleerd om ervoor te zorgen dat de bezoeker wordt gemachtigd om de gevraagde verrichting uit te voeren. De vergunning is gebaseerd op de gebruikersrol van de bezoeker en kan ook vereisen controlerend het doelbedrijf, doelgebruiker, en andere verrichtingsparameters. Bovendien moeten de gebruikers van het Portaal van het Beeld tot een Groep met de vereiste toestemmingen behoren om bepaalde omslag en activaverrichtingen uit te voeren. De sectie Verrichtingen verwijst naar de vergunningsvereisten voor elke vluchtuitvoering.
Voorbeeld van SOAP-verzoek en -antwoord
In het volgende voorbeeld wordt een complete addCompany
bewerking, inclusief HTTP-headers:
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>
En de corresponderende reactie:
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-fouten
Wanneer een verrichting een uitzonderingsvoorwaarde ontmoet, is een fout van de ZEEP teruggekeerd als lichaam van het bericht van de ZEEP in plaats van de normale reactie. Als een gebruiker die geen beheerder is, bijvoorbeeld de vorige versie probeert te verzenden addCompany
request, the following response is returned:
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>