Introduction to the Elvis 4 SOAP API
Note: Apart from bug fixes, the Elvis SOAP webservice is not being developed further. New functionality is only added to the REST API. The SOAP API remains available to allow existing third-party applications or integrations to stay compatible with newer Elvis Server versions. We advise to use the REST API for any new developments.
The main purpose of the Elvis SOAP webservice is to allow third-party applications or customizations to talk to the backend of the Elvis server.
Some examples of operations that can be performed through the webservice:
- Search the system for assets matching a specific query.
- Basic information, metadata and URLs for thumbnails, previews and original are returned
- Retrieve asset metadata and optionally the original file as attachment
- Originals, previews and thumbnails can already be returned over HTTP through the webapp, the URLs are included in the hits returned by a search
- Search relations
- Find relations for a given asset.
- The returned relations contain relation specific relation information (type, metadata) and information regarding the related asset (see search content).
- Import assets, including relations between these or existing assets
- Add/Update single pieces of content
- Create/Remove relations between assets in the system
- Remove assets based on a query or;
- Remove a single folder including subfolders
- Move folders or sets of assets
- Copy folders or sets of assets
The WSDL provides detailed technical information on how to communicate with the Elvis webservice.
To access the WSDL webservice description file for the Elvis service, open the following URL:
Detailed documentation is provided inside the WSDL.
soapUIA great way to learn and experiment with the Elvis SOAP API is to use the open-source tool soapUI. This tool analyses the Elvis WSDL and generates sample requests that you can execute directly from the application and the resulting response. soapUI offers an easy way of playing with the Elvis SOAP API and allows you to quickly gain insight in Elvis SOAP requests, responses and how you can use that information in your own application.
The basic soap request contains an envelope with a header and body.
<?xml version="1.0" encoding="UTF-8"?> <SOAP-ENV:Envelope xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"> <SOAP-ENV:Header> <wsse:Security>...</wsse:Security> </SOAP-ENV:Header> <SOAP-ENV:Body> .... </SOAP-ENV:Body> </SOAP-ENV:Envelope>
When sending a SOAP request to the Elvis webservice you need to specify a valid username and password to authenticate the request.
<SOAP-ENV:Header> <wsse:Security SOAP-ENV:mustUnderstand="1" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"> <wsse:UsernameToken> <wsse:Username>...</wsse:Username> <wsse:Password>...</wsse:Password> </wsse:UsernameToken> </wsse:Security> </SOAP-ENV:Header>