Differences between revisions 53 and 54
Revision 53 as of 2008-10-16 13:14:32
Size: 6851
Editor: abr
Comment:
Revision 54 as of 2008-10-16 15:07:47
Size: 2674
Editor: abr
Comment:
Deletions are marked like this. Additions are marked like this.
Line 45: Line 45:
=== API-A (Fedora Access service API) ===

[[Anchor(anchor_describeRepository)]]
==== describeRepository ====
Gets information that describes the repository.

Returns:
 * {{{RepositoryInfo}}} A data structure that contains key metadata describing the Fedora repository server including repository name, version, base URL, pid namespace, and sample request URLs. (See definition of [#anchor_RepositoryInfo RepositoryInfo] under Data structures below)

Throws:
 * {{{java.rmi.RemoteException}}}


[[Anchor(anchor_getDatastreamDissemination)]]
==== 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}}} The datastream as a mime-typed stream. (See definition of [#anchor_MIMETypedStream MIMETypedStream] under Data structures below)

Throws:
 * {{{java.rmi.RemoteException}}}


[[Anchor(anchor_getDissemination)]]
==== 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}}} An array of name-value pairs.
 * {{{String asOfDateTime}}} The versioning dateTime. If null, Fedora will use the most recent version.

Returns:
 * {{{MIMETypedStream}}} A MIME-typed stream containing the result of the dissemination. (See definition of [#anchor_MIMETypedStream MIMETypedStream] under Data structures below)

Throws:
 * {{{java.rmi.RemoteException}}}


[[Anchor(anchor_getObjectHistory)]]
==== 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.

Throws:
 * {{{java.rmi.RemoteException}}}


[[Anchor(anchor_getObjectProfile)]]
==== getObjectProfile ====
Gets the !ObjectProfile 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}}} The !ObjectProfile of the object. (See definition of [#anchor_ObjectProfile ObjectProfile] under Data structures below)

Throws:
 * {{{java.rmi.RemoteException}}}


[[Anchor(anchor_listDatastreams)]]
==== 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 sequence of !DatastreamDefs. (See definition of [#anchor_DatastreamDef DatastreamDef] under Data structures below)

Throws:
 * {{{java.rmi.RemoteException}}}


[[Anchor(anchor_listMethods)]]
==== listMethods ====
Lists all the methods that the object supports.

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:
 * {{{ObjectMethodsDef[]}}} A sequence of !ObjectMethodsDefs. (See definition of [#anchor_ObjectMethodsDef ObjectMethodsDef] under Data structures below)

Throws:
 * {{{java.rmi.RemoteException}}}

Fedora 3.0 API

TableOfContents

DOMS metadata objects will be stored in Fedora-commons 3.0. Fedora 3.0 is currently in beta 2, but is expected to be final by the time we release DOMS.

The API is documented here: http://www.fedora-commons.org/documentation/3.0/userdocs/index.html#webservices

The following restrictions apply:

  • The possibilities "PurgeDatastream" and "PurgeObject" are not allowed. Instead change the state to deleted

  • setDatastreamVersionable is disallowed. The internal datastreams are always versioned.
  • Do not use getNextPID, instead use the method provided from DOMS

All ingested objects, and all updates, must lead to valid objects, as defined by the data model. The exception is that objects marked as "draft" or "intermediate" in the datamodel are always considered valid.

Making a call to any API method that changes the object to a state not valid as defined by the datamodel will fail. Any call to a state-changing API-call where the object is not first set to intermediate state will fail.

Examples

Saving seven new interrelated objects to DOMS

Since the datamodel may require that all seven objects are correctly ingested and interrelated before they are valid, ingest all seven objects in intermediate state, and then publish them

  • Call the method for generating DOMS PIDs seven times
  • Generate 7 FoxML objects, each with the administrative state set to "intermediate"
  • Call API-M ingest seven times

  • Call API-M modifyDatastreamByValue 7 times to update the state to "published"

Updating fields and references for 8 interrelated objects

To make sure that the changes don't interfere with validity, first set the state to intermediate, then update state to published after modifications.

  • Call API-M modifyDatastreamByValue 8 times to update the administrative state to "intermediate"

  • Update datastreams and relations as needed to make the changes using addRelationsship/addDatastream/purgeRelationship/modifyDatastreamByValue/setDatastreamState

  • Call API-M modifyDatastreamByValue 8 times to update the administrative state to "published"

Usage of Fedora API-M and API-A

The following describes those methods of the Fedora API-M and API-A that may be called by the GUI.

Descriptions in the following were copied (in part) from the Fedora documentation at http://www.fedora-commons.org/confluence/display/FCR30/API-M and http://www.fedora-commons.org/confluence/display/FCR30/API-A.

Usage of Fedora RISearch

http://wiki.statsbiblioteket.dk/domswiki/RIsearch

Fedora 3.0 API (last edited 2010-03-17 13:12:49 by localhost)