Size: 2202
Comment: Created by the PackagePages action.
|
Size: 2422
Comment:
|
Deletions are marked like this. | Additions are marked like this. |
Line 3: | Line 3: |
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. | DOMS metadata objects will be stored in Fedora-commons 3.0. |
Line 5: | Line 5: |
The API is documented here: http://www.fedora-commons.org/documentation/3.0b2/userdocs/index.html#webservices | The API is documented here, as far as it goes: http://www.fedora-commons.org/documentation/3.0/userdocs/index.html#webservices |
Line 7: | Line 7: |
The following restrictions apply: | 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. |
Line 9: | Line 9: |
* The possibilities "PurgeDatastream" and "PurgeObject" are not allowed. Instead change the state to deleted * setDatastreamVersionable is disallowed. The internal datastreams are always versioned. |
The following methods are restricted * [:/Managment#PurgeDatastream: apiM.PurgeDatastream] and[:/Managment#PurgeObject: apiM.PurgeObject] are not allowed. Instead use [:Fedora_3.0_API/Managment#modifyDatastream: apiM.modifyDatastream] and [:Fedora_3.0_API/Managment#modifyObject: apiM.modifyObject] to change the state to "D" (deleted). * [:/Managment#setDatastreamVersionable: apiM.setDatastreamVersionable] is disallowed. The internal datastreams are always versioned. |
Line 13: | Line 15: |
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. | |
Line 15: | Line 16: |
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. | Objects that are marked as "published" (see FedoraTransactionsReplacement) cannot be changed. Any API calls that attempt to change them will fail. There will be made a service to atomically change the state of objects. TODO!!! |
Line 17: | Line 18: |
== Examples == | 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 |
Line 19: | Line 20: |
=== Saving seven new interrelated objects to DOMS === | || 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 || |
Line 21: | Line 27: |
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 | The "fedora-types:!ArrayOfString" is defined thus {{{ <complexType name="ArrayOfString"> <sequence> <element name="item" minOccurs="0" maxOccurs="unbounded" type="xsd:string"/> </sequence> </complexType> }}} |
Line 23: | Line 36: |
* 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" |
|
Line 28: | Line 37: |
=== Updating fields and references for 8 interrelated objects === | The Fedora API is described in the the pages below. |
Line 30: | Line 39: |
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" |
* [:/Access: The public Access API] - Everybody can use this, this is the primary way for external applications to query the repository. * [:/Managment: The protected Managment 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 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.
The following methods are restricted
[:/Managment#PurgeDatastream: apiM.PurgeDatastream] and[:/Managment#PurgeObject: apiM.PurgeObject] are not allowed. Instead use [:Fedora_3.0_API/Managment#modifyDatastream: apiM.modifyDatastream] and [:Fedora_3.0_API/Managment#modifyObject: apiM.modifyObject] to change the state to "D" (deleted).
- [:/Managment#setDatastreamVersionable: apiM.setDatastreamVersionable] is disallowed. The internal datastreams are always versioned.
- Do not use getNextPID, instead use the method provided from DOMS
Objects that are marked as "published" (see FedoraTransactionsReplacement) cannot be changed. Any API calls that attempt to change them will fail. There will be made a service to atomically change the state of objects. TODO!!!
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 Fedora API is described in the the pages below.
- [:/Access: The public Access API] - Everybody can use this, this is the primary way for external applications to query the repository.
- [:/Managment: The protected Managment 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.