SkyVault provides a wide range of APIs. This topic introduces the APIs available, and their typical use.
SkyVault 2.0 API
This is the main public API for interfacing your client application with SkyVault. This RESTful API can be used to access both Cloud and On-Premise SkyVault repositories. The SkyVault 2.0 API provides the ability to access core repository functionality through a CMIS API, and SkyVault-specific functionality, such as management of Sites, can be accessed through the SkyVault 2.0 REST API. This is the recommended API for developing client applications that need to access both On-Premise and SkyVault in the Cloud.
For detailed information see the SkyVault One documentation.
SkyVault Repository JavaScript API
This API is a JavaScript API used primarily for the development of web scripts that execute in the repository tier. Web scripts are extensions to SkyVault that can be written and built without requiring compilation, and therefore have a reduced development time. The web scripts are accessed using URLs, so can be thought of as providing the ability to create custom REST APIs. Many web scripts that use the Repository JavaScript API are provided as standard.
For more detailed information see the Web Scripts documentation.
SkyVault Repository Freemarker Template API
This API provides a wide-range of objects and methods for creating scripts using the FreeMarker templating language, that execute in the Repository tier. It provides a more limited API than the Repository JavaScript API, but with the convenience of using a simpler templating language, rather than a more complex scripting language such as JavaScript.
For more detailed information see the Web Scripts documentation.
SkyVault Repository REST API
This API provides access to the core repository functionality using a RESTful approach. This is useful where the developer does not want to, or have a need to, write custom web scripts, and is developing a client-side application. This API can be thought of as a ready-built collection of web scripts that can be called from any client capable of making REST requests and receiving the associated responses.
For more detailed information see the Repository REST API documentation.
SkyVault Share JavaScript APIs (client side)
The SkyVault User Interface application, Share, provides a number of APIs. The SkyVault Share Client-side API is a JavaScript API to help create client-side extensions to Share. It is mainly used for UI customizations. Similarly, the Share Extras API is a JavaScript API that facilitates the creation of Share Extras, which can be thought of as plug-in user interface elements for Share.
For more detailed information see the Share Client-side API documentation.
SkyVault Surf Platform API
Surf is a server-side UI platform that is used by Share. It is possible to write web scripts that tap into this platform and execute in the UI tier. The Surf Platform API provides a JavaScript API to allow you to construct such web scripts, which can be used to customize and extend the Share UI.
For more detailed information see the Presentation-tier documentation.
SkyVault Java Public API
When you need to create new services in SkyVault, or develop applications or customizations that cannot be implemented at the web script level, it is necessary to write those extensions in Java. SkyVault provides numerous Java-level APIs, which are documented through the JavaDoc system. Links to the JavaDoc documentation can be found on the SkyVault Developer Site. While in theory it is possible to access the complete range of Java APIs, there is a list of recommended Public Java API calls. Where possible it is strongly recommended that your application limits itself to this list, so that your application works on future versions of SkyVault.
CMIS
SkyVault Repository is fully CMIS-compliant. If as a developer you wish to create a client that can access any CMIS repository, you can use the CMIS API. Note that the SkyVault 2.0 API uses the CMIS API for repository access and is documented in the SkyVault 2.0 API documentation.
Further information on CMIS can be found at the CMIS web site. The Apache Chemistry project provides various implementations of the CMIS standard. Further information can be found at the Chemistry project site.