Versions Compared

Key

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

...

Table of Contents

...

The Fedora Access service defines an open 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:

Table of Contents

Repository Access Methods

describeRepository

...

Gets information that describes the repository.

...

  • 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"
    • Wiki Markup_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"
    • Wiki Markup_String\[\] retainPIDs_ \ - The list of pid prefixes, that cause the pid to not be autogenerated.

Object Access

...

Methods

...

findObjects
Anchor
methods-findObjects
methods-findObjects

Lists the specified fields of each object matching the given criteria.

Input parameters:

  • Wiki Markup_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
    • Wiki Markup_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

...

  • 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.
      unmigrated-wiki-markup
    • _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
      • Wiki Markup_String\[\] title_ Only set if the relevant field was set in resultfields Wiki Markup_
      • String\[\] creator_ Only set if the relevant field was set in resultfields
      • Wiki Markup
        _String\[\] subject_ Only set if the relevant field was set in resultfields
      • Wiki Markup
        _String\[\] description_ Only set if the relevant field was set in resultfields
      • Wiki Markup
        _String\[\] publisher_ Only set if the relevant field was set in resultfields
      • Wiki Markup
        _String\[\] contributor_ Only set if the relevant field was set in resultfields
      • Wiki Markup
        _String\[\] date_ Only set if the relevant field was set in resultfields
      • Wiki Markup
        _String\[\] type_ Only set if the relevant field was set in resultfields
      • Wiki Markup
        _String\[\] format_ Only set if the relevant field was set in resultfields
      • Wiki Markup
        _String\[\] identifier_ Only set if the relevant field was set in resultfields
      • Wiki Markup
        _String\[\] source_ Only set if the relevant field was set in resultfields
      • Wiki Markup
        _String\[\] language_ Only set if the relevant field was set in resultfields
      • Wiki Markup
        _String\[\] relation_ Only set if the relevant field was set in resultfields
      • Wiki Markup
        _String\[\] coverage_ 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 Wiki Markup_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.

  • Wiki Markup_String\[\] resultfields_ = \ ["pid", "state"\]
  • int maxResults = null
  • FieldSearchQuery query:
      unmigrated-wiki-markup
    • _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.

...

  • 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.
    • Wiki Markup_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 resultfieldsunmigrated-wiki-markup
      • _String\[\] title_ Only set if the relevant field was set in resultfieldsunmigrated-wiki-markup_
      • String\[\] creator_ Only set if the relevant field was set in resultfields Wiki Markup_
      • String\[\] subject_ Only set if the relevant field was set in resultfieldsunmigrated-wiki-markup_
      • String\[\] description_ Only set if the relevant field was set in resultfieldsunmigrated-wiki-markup_
      • String\[\] publisher_ Only set if the relevant field was set in resultfields Wiki Markup_
      • String\[\] contributor_ Only set if the relevant field was set in resultfields Wiki Markup_
      • String\[\] date_ Only set if the relevant field was set in resultfieldsunmigrated-wiki-markup_
      • String\[\] type_ Only set if the relevant field was set in resultfieldsunmigrated-wiki-markup_
      • String\[\] format_ Only set if the relevant field was set in resultfields Wiki Markup_
      • String\[\] identifier_ Only set if the relevant field was set in resultfieldsunmigrated-wiki-markup_
      • String\[\] source_ Only set if the relevant field was set in resultfields
      • Wiki Markup
        _String\[\] language_ Only set if the relevant field was set in resultfields
      • Wiki Markup
        _String\[\] relation_ Only set if the relevant field was set in resultfields
      • Wiki Markup
        _String\[\] coverage_ Only set if the relevant field was set in resultfields
      • 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 Wiki Markup_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.

...

  • String pid The pid of the object.

Returns:

  • Wiki Markup_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.

...

  • ObjectProfile Contains these fields
    • String pid The pid of the object
    • String objLabel The label of the objectunmigrated-wiki-markup
    • _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

...

Methods

...

getDatastreamDissemination

Gets the content of a datastream.

...

  • MIMETypedStream** String MIMEType The mimetype of the stream
      unmigrated-wiki-markup
    • _byte\[\] stream_ The contents of the Streamunmigrated-wiki-markup
    • _Property\[\] header_ The header will be empty, or if applicable, contain the http header as name/value pairs.
      • String name
      • String value

listDatastreams

...

Lists the datastreams of an object.

...

  • 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 Methods

...

getDissemination

Disseminates the content produced by executing the method specified in the service definition associated the specified digital object.

...

  • 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.
  • Wiki Markup_Property\[\] parameters_ name-value pairs.
    • String name
    • String value
  • String asOfDateTime The versioning dateTime. If null, Fedora will use the most recent version.

...

  • MIMETypedStream** String MIMEType The mimetype of the stream
      unmigrated-wiki-markup
    • _byte\[\] stream_ The contents of the Stream
    • Wiki Markup_Property\[\] header_ The header will be empty, or if applicable, contain the http header as name/value pairs.
      • String name
      • String value

listMethods

...

...

Lists all the methods that the object supports.

...

  • 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:

  • Wiki Markup_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 Wiki Markup
    • _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.unmigrated-wiki-markup
      • _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:

Panelnoformat

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.

...