Differences between revisions 66 and 67
Revision 66 as of 2008-10-17 16:20:17
Size: 2878
Editor: abr
Comment:
Revision 67 as of 2010-03-17 13:12:49
Size: 2971
Editor: localhost
Comment: converted to 1.6 markup
Deletions are marked like this. Additions are marked like this.
Line 34: Line 34:
 * [:/Management#PurgeDatastream: apiM.PurgeDatastream] and[:/Management#PurgeObject: apiM.PurgeObject] are not allowed. Instead use [:Fedora_3.0_API/Management#modifyDatastream: apiM.modifyDatastream] and [:Fedora_3.0_API/Management#modifyObject: apiM.modifyObject] to change the state to "D" (deleted).
 * [:/Management#setDatastreamVersionable: apiM.setDatastreamVersionable] is disallowed. The internal datastreams are always versioned.
 * [[../Fedora 3.0 API/Management#PurgeDatastream| apiM.PurgeDatastream]] and[[../Fedora 3.0 API/Management#PurgeObject| apiM.PurgeObject]] are not allowed. Instead use [[Fedora 3.0 API/Management#modifyDatastream| apiM.modifyDatastream]] and [[Fedora 3.0 API/Management#modifyObject| apiM.modifyObject]] to change the state to "D" (deleted).
 * [[../Fedora 3.0 API/Management#setDatastreamVersionable| apiM.setDatastreamVersionable]] is disallowed. The internal datastreams are always versioned.
Line 45: Line 45:
 * [:/Access: The public Access API] - Everybody can use this, this is the primary way for external applications to query the repository.
 * [:/Management: The protected Management API] - Only authenticated administrators, such as users of the GUI, can use this.
 * [:Fedora_3.0_triple_store_API: The Resource Index API] - The interface to the Fedora triple store.
 * [[../Fedora 3.0 API/Access| The public Access API]] - Everybody can use this, this is the primary way for external applications to query the repository.
 * [[../Fedora 3.0 API/Management| The protected Management API]] - Only authenticated administrators, such as users of the GUI, can use this.
 * [[Fedora 3.0 triple store API| The Resource Index API]] - The interface to the Fedora triple store.

Fedora 3.0 API

DOMS metadata objects will be stored in Fedora-commons 3.0.

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

The structures below are used by Fedora, almost no matter which lanquage you use to interact with it. We use our own shorthand to specify the types. This schema should help you translate to your language of choise

shorthand

wsdl

fedora java client

rest

String

xsd:string

java.lang.String

xsd:string

[]

xsd:sequence

java array

?

byte[]

xsd:base64Binary

jave primitive byte[]

?

long

xsd:long

java primitive long

xsd:long

boolean

xsd:boolean

java primitive boolean

xsd:boolean

The "fedora-types:ArrayOfString" is defined thus

<complexType name="ArrayOfString">
   <sequence>
      <element name="item" minOccurs="0" maxOccurs="unbounded" type="xsd:string"/>
   </sequence>
</complexType>

The API to Fedora is directly exported as the primary API to DOMS. We have restricted a few methods, and have some conventions about certain other should be used.

API restrictions

Fedora has the concept of state for all objects. We have added additional meaning to this term, which is described in FedoraState. Basically, an object can be Active, Inactive or Deleted. If it is Active, the only allowed change is to make it Inactive. All other attempted changes will throw exceptions. If Inactive, all changes are allowed. Changing the state from anything to Active will cause the object to be validated, and if the object is not valid, the state will not be changed.

Best practice, when perfoming changes in a set of objects it to mark each of them as Inactive, before performing any changes, and perform all changes before moving any of them back to Active.

The Fedora API is described in the the pages below.

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