Introduction
The Fedora Access service defines an open 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.
Methods
Repository Access
Anchor |
---|
| Access-Repository |
---|
| Access-Repository |
---|
|
describeRepository
Anchor |
---|
| methods-describeRepository |
---|
| 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
Anchor |
---|
| Access-Objects |
---|
| Access-Objects |
---|
|
findObjects
Anchor |
---|
| methods-findObjects |
---|
| methods-findObjects |
---|
|
Lists the specified fields of each object matching the given criteria.
Input parameters:
- String[] resultfields The names of the fields to return.
- int maxResults The maximum number of results to return in one FieldSearchResult. Further results can be queried with the resumeFindObjects method.
- FieldSearchQuery query: The terms or conditions for the search. Either terms or conditions are used, not both.
- String terms: The search terms
- Condition[] conditions: The conditions on the results
- String property: The property to condition. Possible fields are the same as for resultfields.
- Operator operator: Possible values are: "has", "eq", "lt", "le", "gt" and "ge"
- String value: The value the constrained property must adhere to
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.
- String token: The token to be used in resumeFindObjects
- int cursor: The index of the first object in this resultlist, in the complete resultlist.
- int completeListSize: The size of the complete resultlist.
- String expirationDate: The expirationdate for the token. The last time when the search can be resumed.
- ObjectFields[] resultlist: the specified fields of each object matching the given criteria.
- String pid Only set if the relevant field was set in resultfields
- String label Only set if the relevant field was set in resultfields
- String state Only set if the relevant field was set in resultfields
- String ownerId Only set if the relevant field was set in resultfields
- String cDate Only set if the relevant field was set in resultfields
- String mDate Only set if the relevant field was set in resultfields
- String dcmDate Only set if the relevant field was set in resultfields
- String[] title Only set if the relevant field was set in resultfields
- String[] creator Only set if the relevant field was set in resultfields
- String[] subject Only set if the relevant field was set in resultfields
- String[] description Only set if the relevant field was set in resultfields
- String[] publisher Only set if the relevant field was set in resultfields
- String[] contributor Only set if the relevant field was set in resultfields
- String[] date Only set if the relevant field was set in resultfields
- String[] type Only set if the relevant field was set in resultfields
- String[] format Only set if the relevant field was set in resultfields
- String[] identifier Only set if the relevant field was set in resultfields
- String[] source Only set if the relevant field was set in resultfields
- String[] language Only set if the relevant field was set in resultfields
- String[] relation Only set if the relevant field was set in resultfields
- String[] coverage Only set if the relevant field was set in resultfields
- String[] rights Only set if the relevant field was set in resultfields
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.
- String[] resultfields = ["pid", "state"]
- int maxResults = null
- FieldSearchQuery query:
- Condition[] conditions:
- String property: "pid"
- Operator operator: "eq"
- String value: "The pid of the object you want to find"
resumeFindObjects
Anchor |
---|
| methods-resumeFindObjects |
---|
| methods-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.
- String token: The token to be used in resumeFindObjects
- int cursor: The index of the first object in this resultlist, in the complete resultlist.
- int completeListSize: The size of the complete resultlist.
- String expirationDate: The expirationdate for the token. The last time when the search can be resumed.
- ObjectFields[] resultlist: the specified fields of each object matching the given criteria.
- String pid Only set if the relevant field was set in resultfields
- String label Only set if the relevant field was set in resultfields
- String state Only set if the relevant field was set in resultfields
- String ownerId Only set if the relevant field was set in resultfields
- String cDate Only set if the relevant field was set in resultfields
- String mDate Only set if the relevant field was set in resultfields
- String dcmDate Only set if the relevant field was set in resultfields
- String[] title Only set if the relevant field was set in resultfields
- String[] creator Only set if the relevant field was set in resultfields
- String[] subject Only set if the relevant field was set in resultfields
- String[] description Only set if the relevant field was set in resultfields
- String[] publisher Only set if the relevant field was set in resultfields
- String[] contributor Only set if the relevant field was set in resultfields
- String[] date Only set if the relevant field was set in resultfields
- String[] type Only set if the relevant field was set in resultfields
- String[] format Only set if the relevant field was set in resultfields
- String[] identifier Only set if the relevant field was set in resultfields
- String[] source Only set if the relevant field was set in resultfields
- String[] language Only set if the relevant field was set in resultfields
- String[] relation Only set if the relevant field was set in resultfields
- String[] coverage Only set if the relevant field was set in resultfields
- String[] rights Only set if the relevant field was set in resultfields
getObjectHistory
Anchor |
---|
| methods-getObjectHistory |
---|
| methods-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:
- String[] An array containing the list of timestamps indicating when changes were made to the object.
getObjectProfile
Anchor |
---|
| methods-getObjectProfile |
---|
| methods-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
- String pid The pid of the object
- String objLabel The label of the object
- String[] objModels The pids of the content models of the object
- String objCreateDate The creation date
- String objLastModDate The last modification time
- String objDissIndexViewURL The REST url for the Dissemination index, as known from the built in search service
- String objItemIndexViewURL The REST url for the Datastream index, as known from the built in search service
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
Anchor |
---|
| Access-Datastreams |
---|
| Access-Datastreams |
---|
|
getDatastreamDissemination
Anchor |
---|
| methods-getDatastreamDissemination |
---|
| 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
Anchor |
---|
| methods-listDatastreams |
---|
| methods-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:
- DatastreamDef[] A datastream definition object, containing the following values
- String ID The datastream id - "DC" for the DC datastream
- String label The datastream label
- String MIMEType The mimetype of the datastream, if any
Dissemination Access
Anchor |
---|
| Access-Dissemination |
---|
| Access-Dissemination |
---|
|
getDissemination
Anchor |
---|
| methods-getDissemination |
---|
| methods-getDissemination |
---|
|
Disseminates the content produced by executing the method specified in the service definition associated the specified digital object.
Input parameters:
- String pid The pid of the object.
- String serviceDefinitionPid The PID of the Service Definition object.
- String methodName The name of the method to be executed.
- Property[] parameters name-value pairs.
- String asOfDateTime The versioning dateTime. 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.
listMethods
Anchor |
---|
| methods-listMethods |
---|
| methods-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:
- ObjectMethodDef[]** String PID The pid of the data object
- String serviceDefinitionPID The pid of the service definition object
- String methodName the name of the method
- MethodParmDef[] methodParmDefs An array of the method parameters
- String parmName The name of the parameter.
- String parmType The type of the parameter. Restricted to "fedora:datastreamInputType", "fedora:userInputType" or "fedora:defaultInputType"
- String parmDefaultValue If the parmType is default, this is the value that will be used. Null if other type.
- String[] parmDomainValues If the parameter can be defined by the user, these are the possible values. If Null, the parameter can take any value. Null if other type.
- boolean parmRequired False, if this parameter can be left out of a call.
- String parmLabel The label for the parameter. Can be null.
- String parmPassBy The method of passing the paramenter. Restricted to "URL_REF" (if the parameter is pass by reference - by an url) and "VALUE" (if the parameter is pass by value)
- String asOfDate The timestamp/version of the method definition
WSDL
When running your own Fedora server, the API-A WSDL is available at /wsdl?api=API-A.
Example:
Warning |
---|
|
The Apache Axis library also automatically provides an INCORRECT WSDL DOCUMENT at /fedora/services/access?wsdl. Please DO NOT USE this; it is automatically generated and will result in unexpected behavior for your clients. The recommended URL, /fedora/wsdl?api=API-A produces a copy of the API-A WSDL exactly as it was intended. |