General Overview
This document provides an overview and reference for the XDOC Web Api Services.
These services utilize a simple HTTP protocol endpoint similar in concept to RESTful style Api services.
Service methods can be invoked with simple HTTP Get and Post methods. This style of service has the following features:
- No SOAP or Web Service Client “stub” or “wrapper” is needed to invoke these services. Success or failure of a Method call is determined the same way for all method by inspecting the XDOC specific HTTP Response Headers, the
envelope of the result XML, or the HTTP Status Codes if the Method utilizes Direct Streaming as described below. - Many Methods support Direct Streaming of the request data to the Request Input Stream, without the need for Base64 encoding. When using Methods that require binary document data to be passed to the Service, performance and scalability is increased, and invocation simplified.
- Similarly, many Methods support Direct Streaming of the result data to the Response Output Stream. These include Methods used to retrieve document data (E.g. PDFs, TIFs, etc.) which write the data directly to the Response Stream. When using these direct streaming methods, there is significant performance and scalability advantages for both the XDOC Server, as well as the Invoking Application:
- Since Binary return types such as PDF and TIF are written directly to the Response Stream, no Base64 encoding or decoding is needed on either end. This eliminates the processing overhead of the Base64 encoding / decoding, as well as decreases the overall size of the transmission by roughly 30%.
- Streaming the document data to the Response Stream eliminates memory spikes in both the XDOC Server and the Invoking Application. For example, the document data can be streamed in chunks (E.g.: 16K) to the Invoking Application, which can in turn stream each chunk back to the end-user browser. During the entire method call, the XDOC Server and Invoking Application only use memory equivalent to a chunk.
- Without this Streaming technique, consider a 1MB PDF file example. The Base64 encoding increases both the transmission size of the to approximately 1.4 MB, as well as drastically increases the memory utilization from 4K to 1.4MB per Method call. In high performance environments, this can have a substantial effect on the number of users or method calls that can be supported by each application server.
For more information on constructing URLs for invoking HTTP service methods please see S1. Method Invocation Syntax
The Method Listing page contains the following collections of service methods:
- Application - Includes Service Methods for Testing Connectivity and API Protocol Handshaking
- System - Includes Service Methods for Retrieving System level configuration such as Security Profile lists, XDOC Version Information, etc.
- Project - Includes Service Methods for Retrieving Project level repository configuration such as list of Document Types, list of Document Stacks, Bundle Profiles, etc.
- Container - Includes Service Methods for Retrieving lists of documents for a particular container (loan), downloading documents in TIF or PDF format, etc.
- Document - Includes Service Methods for Adding Documents, Deleting Documents, etc.
This document is divided into the following sections: