Table of Contents

  1. Introduction
  2. Client Syntax
  3. Configuration
  4. Examples
  1. Introduction

    The Fedora API-A interface is implemented as a SOAP service that consists of the following methods: For more information on the method definitions, refer to the API descriptions located at Fedora System Documentation.

    The Fedora API-A sample SOAP client is an example of a java servlet-based client that provides a front end to the Fedora Access API-A SOAP service. The sample client is designed to provide a browser centric view of the Fedora Access interface. Return types from the Fedora Access SOAP service are translated into a form suitable for viewing with a web browser; i.e., MIME-typed streams. Applications that can readily handle SOAP requests and responses would most likely communicate directly with the Fedora Access SOAP service rather than use a java servlet as an intermediary. This servlet is provided as an example of how to construct a client that uses the Fedora Access API via SOAP and currently does not implement all methods found in API-A. As noted below, the sample Soap Client does not provide implementations for the methods FindObjects and ResumeFindObjects.
  2. Client Syntax

    Input parameters for the servlet include: Note that all servlet parameter names that are implementation specific end with the underscore character ("_"). This is done to avoid possible name clashes with user-supplied method parameter names. As a general rule, user-supplied parameters should never contain names that end with the underscore character to prevent possible name conflicts.
  3. Configuration

    The sample client can be run as an integral part of the Fedora server or as a standalone client on a different machine or server. If running outside the Fedora server, its only requirements are a servlet engine using Java Servlet API 2.4 or higher, the endpoint of a functional Fedora Server, and the servlet path mapping used to access the soap client. The endpoint and servlet path info are configured in the soapclient.properties file that is located in the WEB-INF directory of the soapclient webapp module in the Fedora distribution directory tree. The properties file specifies three variables: The web.xml file for the soap client webapp uses these default settings. If the webapp is ported to another servlet engine and any of the serlvet mappings change, the web.xml and the soapclient.properties file must both be updated accordingly. The servlets will dynamically get the values in the soapclient.properties file so no changes should be needed in the source code.

    When the Fedora server is built, it will automatically create the soapclient webapp module and place it in the Fedora distribution directory. The generated SOAP type libraries that are bundled with the client are tied to the WSDL type definitions defined for Fedora API-A. Any changes made to the WSDL for API-A will require rebuilding of the Fedora server and the soap client webapp module.

    Note that if you change the host name or port number on which the Fedora server is running, you must also update the value for the fedoraEndpoint parameter in the soapclient.properties file to reflect the new values. Otherwise, the soap client will be unable to connect to the Fedora server running under the new host name or port number. If you are running the soap client bundled together with the Fedora server, you need to stop the Fedora server, update the soapclient.properties file, and then restart the Fedora server so the new property values will be recognized by the soapclient webapp.
  4. Examples

    Get information about the repository:
    
    	http://localhost:8080/soapclient/apia?action_=DescribeRepository
    	
    Get the thumbnail datastream (with DSID of DS1) in data object with a PID of demo:5
    
    	http://localhost:8080/soapclient/apia?action_=GetDatastreamDissemination&PID_=demo:5&dsID_=DS1
    	
    Get the Dissemination for a data object with a PID of demo:5 and associated behavior definition object with a PID of demo:1 and methodName of getThumbnail:
    
    	http://localhost:8080/soapclient/apia?action_=GetDissemination&PID_=demo:5&bDefPID_=demo:1&methodName_=getThumbnail
    	
    Get the ObjectHistory for a data object with a PID of demo:5:
    
    	http://localhost:8080/soapclient/apia?action_=GetObjectHistory&PID_=demo:5
    	
    Get the ObjectProfile for a data object with a PID of demo:5:
    
    	http://localhost:8080/soapclient/apia?action_=GetObjectProfile&PID_=demo:5
    	
    List the datastreams for data object with PID of demo:5
    
    	http://localhost:8080/soapclient/apia?action_=ListDatastreams&PID_=demo:5
    	
    List the methods for data object with PID of demo:5
    
    	http://localhost:8080/soapclient/apia?action_=ListMethods&PID_=demo:5