Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migrated to Confluence 5.3

Introduction
Anchor
intro
intro

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
Anchor
methods
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.
      • String name
      • String value

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 name
    • String value
  • 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.
      • String name
      • String value

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
Anchor
wsdl
wsdl

When running your own Fedora server, the API-A WSDL is available at /wsdl?api=API-A.

Example:

Panel

http://localhost:8080/fedora/wsdl?api=API-A

Warning
titleWarning

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.