Fedora's API-A is a SOAP interface for accessing digital objects. The access operations include methods to do reflection on a digital object (i.e., to discover the kinds of disseminations that are available on the object), and to request disseminations. The major function of the Fedora Access service is to fulfill a client's request for dissemination. To support disseminations, the underlying repository system must evaluate the services specified for a digital object, and figure out how to call it. The service may be internal to the repository, or it may be a web service external to the repository. The underlying repository system facilitates all external service bindings on behalf of the client, simply returning a dissemination result via the access service layer.
On this page:
Repository Access Methods
describeRepository
Gets information that describes the repository.
Returns:
- RepositoryInfo** String repositoryName - The name of the Repository. Set in fedora.fcfg. Default "Fedora Repository"
- String repositoryVersion - The version of Fedora running. Fedora 3.0 returns "3.0"
- String repositoryBaseURL - The repository base url set in fedora.fcfg. Default "http://localhost:8080/fedora"
- String repositoryPIDNamespace - The prefix to use for newly generated PIDs
- String defaultExportFormat
- String OAINamespace - The oai namespace. Default "example.org"
String[] adminEmailList - The email to the administrator. Default "bob@example.org" and "sally@example.org". Defined in fedora.fcfg.
- String samplePID - An example pid, to show how to refer to objects. "doms:100"
- String sampleOAIIdentifier - An example oai identifier, to show how to refer to records. Example: "oai:example.org:doms:100"
- String sampleSearchURL - The url to the search service for the repository. Default "http://localhost:8080/fedora/search"
- String sampleAccessURL - The url to an example object in the repository. Default "http://localhost:8080/fedora/get/demo:5"
- String sampleOAIURL - The url to an oai record. Default "http://localhost:8080/fedora/oai?verb=Identify"
String[] retainPIDs - The list of pid prefixes, that cause the pid to not be autogenerated.
Object Access Methods
findObjects
Lists the specified fields of each object matching the given criteria.
Input parameters:
The possible values for resultfield are the following:
- Key fields: pid, label, state, ownerId, cDate, mDate, dcmDate
- Dublin core fields: title, creator, subject, description, publisher, contributor, date, format, identifier, source, language, relation, coverage, rights
Returns:
- FieldSearchResult** ListSession listsession The information nessesary for resuming the search.
Note:
The only way to get the Object State (or OwnerID) is via a findObjects call. Use these parameters to query the state of a object.
resumeFindObjects
Gets the next list of results from a truncated findObjects response.
Input parameters:
- String token: The token of the session in which the remaining results can be obtained.
Returns:
- FieldSearchResult** ListSession listsession The information nessesary for resuming the search.
getObjectHistory
Gets a list of timestamps that correspond to modification dates of components. This currently includes changes to Datastreams and disseminators.
Input parameters:
- String pid The pid of the object.
Returns:
getObjectProfile
Profile of an object, which includes key metadata fields and URLs for the object Dissemination Index and the object Item Index. Can be thought of as a default view of the object.
Input parameters:
- String pid The pid of the object.
- String asOfDateTime The date/time stamp specifying the desired version of the object. If null, the current version of the object (the most recent time) is assumed.
Returns:
- ObjectProfile Contains these fields
Note:
There are two general object properties, State and OwnerID, which are not part of the ObjectProfile. The way to get these are through the findObjects method.
Datastream Access Methods
getDatastreamDissemination
Gets the content of a datastream.
Input parameters:
- String pid The PID of the object.
- String dsID The datastream ID.
- String asOfDateTime A dateTime indicating the version of the datastream to retrieve. If null, Fedora will use the most recent version.
Returns:
- MIMETypedStream** String MIMEType The mimetype of the stream
byte[] stream The contents of the Stream
Property[] header The header will be empty, or if applicable, contain the http header as name/value pairs.
listDatastreams
Lists the datastreams of an object.
Input parameters:
- String pid The pid of the object.
- String asOfDateTime The date/time stamp specifying the desired version of the object. If null, the current version of the object (the most recent time) is assumed.
Returns:
Dissemination Access Methods
getDissemination
Disseminates the content produced by executing the method specified in the service definition associated the specified digital object.
Input parameters:
Returns:
- MIMETypedStream** String MIMEType The mimetype of the stream
byte[] stream The contents of the Stream
Property[] header The header will be empty, or if applicable, contain the http header as name/value pairs.
listMethods
Lists all the methods that the object supports.
Each method can take a number of paramethers. Each parameter for a method has a name, and a type. The possible values of a parameter depends on its type. It can be bound to a datastream in the object, it can have a hardcoded value or it can be defined by the caller.
Each parameter is defined to be passed by reference or passed by value.
Input parameters:
- String pid The pid of the object.
- String asOfDateTime The date/time stamp specifying the desired version of the object. If null, the current version of the object (the most recent time) is assumed.
Returns:
WSDL
When running your own Fedora server, the API-A WSDL is available at /wsdl?api=API-A.
Example: