Versões WSDL do Serviço Web IPS ips-web-service-wsdl-versions
O Serviço Web IPS é suportado por um conjunto de documentos WSDL (Web Services Description Language) que são acessados de qualquer instalação IPS na qual o componente Serviço Web IPS está instalado. Cada versão da API IPS inclui um novo arquivo WSDL que faz referência a um namespace XML de destino com versão. As versões anteriores do namespace WSDL também são compatíveis para permitir compatibilidade com versões anteriores de aplicativos existentes.
Acesso WSDL section-62e69fa2c87f4dc9bca72f10ba028f6c
Acesse os WSDLs do Scene7 conforme mostrado abaixo.
https://<IPS_hostname:<IPS_port>/<IPS_webapp>/
webservice/IpsApi[-<API_version>].wsdl
O valor padrão para <IPS_webapp> é scene7.
Local do serviço
A URL do serviço é especificada na seção de serviço do documento WSDL do serviço Web IPS. O URL de serviço geralmente tem o formato:
https://<IPS_hostname>:<IPS_port>/<IPS_webapp>/
services/IpsApiService
URLs de acesso para regiões do Dynamic Media
WSDLs compatíveis section-ebbba69880f94e9c823f1147974eb404
Lembre-se, talvez seja necessário modificar seu código se quiser usar recursos na versão mais recente da API do IPS. A API do IPS é compatível com WSDLs para as seguintes versões:
Os aplicativos existentes que precisam ser modificados para usar os novos recursos devem ser atualizados para a versão mais recente da API e podem precisar fazer alterações no código existente. Consulte o log de alterações para obter detalhes.
SOAP section-51e7ecbd1d7f451b9e4f6bf7e1579cae
Associações
O Serviço Web de API de IPS oferece suporte somente a uma vinculação de SOAP.
Transportes com suporte
A associação IPS API SOAP é compatível apenas com transporte HTTP. Faça todas as solicitações do SOAP usando o método HTTPS POST.
cabeçalho da ação do SOAP
Para processar uma solicitação, defina o cabeçalho HTTP SOAPAction como o nome da operação solicitada. O atributo nome da operação na seção de vinculação WSDL especifica o nome.
Formato da mensagem
O estilo documento/literal é usado para todas as mensagens de entrada e saída com tipos baseados na linguagem de definição do Esquema XML ( https://www.w3.org/TR/xmlschema-0/) e especificados no arquivo WSDL. Todos os tipos exigem nomes qualificados usando o valor do namespace de destino especificado no arquivo WSDL.
Solicitar autenticação
O método preferido para transmitir credenciais de autenticação em solicitações de API é usar o elemento authHeader conforme definido no WSDL da API do IPS.
<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>
Campos
O elemento authHeader sempre é definido no namespace http://www.scene7.com/IpsApi/xsd, independentemente da versão da API.
Este é um exemplo de uso do elemento authHeader em um cabeçalho SOAP de solicitação:
<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>
Outros métodos de autenticação de solicitação
Se, por algum motivo, seu aplicativo cliente não puder passar o cabeçalho do SOAP authHeader, as solicitações de API também poderão especificar credenciais usando a autenticação básica de HTTP (conforme especificado no RFC 2617).
Para autenticação básica de HTTP, a seção do cabeçalho HTTP de cada solicitação POST do SOAP deve incluir um cabeçalho no formato:
Authorization: Basic base64(<IPS_user_email>:<password>)
Onde base64() aplica a codificação Base64 padrão, <IPS_user_email> é o endereço de email de um usuário de IPS válido e <password> é a senha do usuário.
Envie o cabeçalho de Autorização preventivamente com a solicitação inicial. Se nenhuma credencial de autenticação estiver incluída na solicitação, IpsApiService não responderá com um código de status de 401 (Unauthorized). Em vez disso, um código de status de 500 (Internal Server Error) é retornado com um corpo de falha SOAP informando que a solicitação não pôde ser autenticada.
Antes do IPS 3.8, a autenticação por meio do cabeçalho do SOAP era implementada usando os elementos AuthUser e AuthPassword no namespace http://www.scene7.com/IpsApi. Por exemplo:
<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>
Este estilo ainda é suportado para compatibilidade com versões anteriores, mas foi substituído em favor do elemento authHeader.
Solicitar autorização
Após as credenciais do chamador serem autenticadas, a solicitação é verificada para garantir que o chamador esteja autorizado a executar a operação solicitada. A autorização é baseada na função de usuário do chamador e também pode exigir a verificação da empresa de destino, usuário de destino e outros parâmetros de operação. Além disso, os usuários do Portal de imagens devem pertencer a um Grupo com as permissões necessárias para executar determinadas operações de pastas e ativos. A seção de referência Operações detalha os requisitos de autorização para cada operação.
Solicitação e resposta de exemplo do SOAP
O exemplo a seguir mostra uma operação addCompany concluída, incluindo cabeçalhos 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>
E a resposta correspondente:
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>
Falhas do SOAP
Quando uma operação encontra uma condição de exceção, uma falha do SOAP é retornada como o corpo da mensagem do SOAP, em vez da resposta normal. Por exemplo, se um usuário não administrador tentar enviar a solicitação addCompany anterior, a seguinte resposta será retornada:
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>