Versions Compared

Key

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

...

GET /objects/{pid} - get object profile

Wiki MarkupGET /objects/\{pid}?\[asOfDateTime\]\[format\]

Parameter

Format

Meaning

Default

Example

asOfDateTime

yyyy-MM-ddTHH:mm:ss.SSSZ

The object, as it looked at the specified time

Now

2009-01-01T03:00:00:000Z

format

one of text/xml, text/html, html, xml

The format of the return value

text/html

text/xml

...

Example of xml format

Code Block
xmlxml
titleWithout asOfDateTime set
xml
<objectProfile pid="demo:testObject">
  <objLabel>label</objLabel>
  <objOwnerId>fedoraAdmin</objOwnerId>
  <objModels>
    <model>info:fedora/demo:ContentModel</model>
  </objModels>
  <objCreateDate>2008-09-29T03:49:450Z</objCreateDate>
  <objLastModDate>2014-09-19T01:18:330Z</objLastModDate>
  <objDissIndexViewURL>http://localhost:8080/fedora/get/demo:testObject/fedora-system:3/viewMethodIndex</objDissIndexViewURL>
  <objItemIndexViewURL>http://localhost:8080/fedora/get/demo:testObject/fedora-system:3/viewItemIndex</objItemIndexViewURL>
  <objState>A</objState>
</objectProfile>
xml
Code Block
xml
titleWith asOfDateTime set
xml
<objectProfile pid="demo:testObject" datetime="2008-09-29T03:49:450Z">
  <objLabel>label</objLabel>
  <objOwnerId>fedoraAdmin</objOwnerId>
  <objModels>
    <model>info:fedora/demo:ContentModel</model>
  </objModels>
  <objCreateDate>2008-09-29T03:49:450Z</objCreateDate>
  <objLastModDate>2014-09-19T01:18:330Z</objLastModDate>
  <objDissIndexViewURL>http://localhost:8080/fedora/get/demo:testObject/fedora-system:3/viewMethodIndex/2008-09-29T03:49:450Z</objDissIndexViewURL>
  <objItemIndexViewURL>http://localhost:8080/fedora/get/demo:testObject/fedora-system:3/viewItemIndex/2008-09-29T03:49:450Z</objItemIndexViewURL>
  <objState>A</objState>
</objectProfile>
Code Block
xmlxml
titleSchema for XML return value
xml
<?xml version="1.0" encoding="UTF-8"?>
<!--W3C Schema generated by XMLSPY v2004 rel. 2 U (http://www.xmlspy.com)-->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
	elementFormDefault="qualified">
	<xs:element name="objectProfile">
		<xs:complexType>
			<xs:sequence>
				<xs:element ref="objLabel" />
				<xs:element ref="objOwnerId" />
				<xs:element ref="objModels" />
				<xs:element ref="objCreateDate" />
				<xs:element ref="objLastModDate" />
				<xs:element ref="objDissIndexViewURL" />
				<xs:element ref="objItemIndexViewURL" />
				<xs:element ref="objState" />
			</xs:sequence>
			<xs:attribute name="pid" use="required">
				<xs:simpleType>
					<xs:restriction base="xs:string" />
				</xs:simpleType>
			</xs:attribute>
			<xs:attribute name="datetime" use="optional">
				<xs:simpleType>
                                        <xs:restriction base="xs:dateTime" />
				</xs:simpleType>
			</xs:attribute>

		</xs:complexType>
	</xs:element>
	<xs:element name="objCreateDate">
		<xs:simpleType>
			<xs:restriction base="xs:dateTime" />
		</xs:simpleType>
	</xs:element>
	<xs:element name="objDissIndexViewURL">
		<xs:simpleType>
			<xs:restriction base="xs:anyURI" />
		</xs:simpleType>
	</xs:element>
	<xs:element name="objItemIndexViewURL">
		<xs:simpleType>
			<xs:restriction base="xs:anyURI" />
		</xs:simpleType>
	</xs:element>
	<xs:element name="objLabel">
		<xs:simpleType>
			<xs:restriction base="xs:string" />
		</xs:simpleType>
	</xs:element>
    <xs:element name="objOwnerId">
        <xs:simpleType>
            <xs:restriction base="xs:string" />
        </xs:simpleType>
    </xs:element>
	<xs:element name="objModels">
		<xs:complexType>
			<xs:sequence>
				<xs:element name="model" minOccurs="0" maxOccurs="unbounded" type="xs:string" />
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<xs:element name="objLastModDate">
		<xs:simpleType>
			<xs:restriction base="xs:dateTime" />
		</xs:simpleType>
	</xs:element>
    <xs:element name="objState">
        <xs:simpleType>
            <xs:restriction base="xs:string" />
        </xs:simpleType>
    </xs:element>	
</xs:schema>

DELETE /objects/{pid} - purge object

Wiki MarkupDELETE /objects/\{pid}?\[logMessage\]\[force\]

Parameter

Format

Meaning

Default

Example

logMessage

String

The message to store in the log, about the purge

Empty string

"Deleted this object because it was not used anymore"

force

one of true, false

Force the purge, even it it breaks a data contract. If set to true, the request will fail, a general exception will be thrown and the return code will be 500. See http://fedora-commons.org/jira/browse/FCREPO-609

false

false

...

(warning) POST /objects/{pid} - ingest or create new object

...

POST /objects/ \ [\{pid\}\| new\] ? \ [label\] \ [format\] \ [encoding\] \ [namespace\] \ [ownerId\]\[logMessage\] \ [ignoreMime\]

Return code

Meaning

201

OK, purging the object, no return body

404

Object not found in repository. Body is exception as text/plain

401

Unauthorized, the security policy forbade this operation with the supplied user credentials. Body as exception as text/plain

400

Wrong syntax in request. Exception as body, text/plain

500

Other, unknown error encountered

...

PUT /objects/{pid} - modify object

Wiki MarkupPUT /objects/\{pid}?\[label]\[logMessage]\[ownerId]\[state]

Modify an object. Modifies only the object level properties, ie. label, ownerId and state.

...

GET /objects/{pid}\versions

Wiki MarkupGET /objects/\{pid}/versions?\[format]

Gets a list of timestamps indicating when components changed in an object. This is a set of timestamps indicating when a datastream was created or modified in the object. These timestamps can be used to request a timestamped dissemination request to view the object as it appeared at a specific point in time.

...

Example of xml format

xml
Code Block
xml
titleExampe of xml return
xml
<fedoraObjectHistory pid="demo:testObject">
  <!--1 or more repetitions:-->
  <objectChangeDate>2008-09-29T03:49:450Z</objectChangeDate>
  <objectChangeDate>2008-10-29T05:47:000Z</objectChangeDate>
</fedoraObjectHistory>
Code Block
xmlxml
titleXml schema
xml
<?xml version="1.0" encoding="UTF-8"?>
<!--W3C Schema generated by XMLSPY v2004 rel. 2 U (http://www.xmlspy.com)-->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
	<xs:element name="fedoraObjectHistory">
		<xs:complexType>		
			<xs:sequence>
				<xs:element name="objectChangeDate" type="xs:string" maxOccurs="unbounded"/>
			</xs:sequence>
			<xs:attribute name="pid" use="required">
				<xs:simpleType>
					<xs:restriction base="xs:string"/>
				</xs:simpleType>
			</xs:attribute>				
		</xs:complexType>
	</xs:element>
</xs:schema>

...

Inquires upon all object Datastreams to obtain datastreams contained by a digital object. This returns a set of datastream locations that represent all possible datastreams available in the object.unmigrated-wiki-markupobject.

GET /objects/\{pid}/datastreams?\[asOfDateTime]\[format]

Parameter

Format

Meaning

Default

Example

asOfDateTime

yyyy-MM-ddTHH:mm:ss.SSSZ

The datastream list as it looked at the specific time

Now

2009-01-01T03:00:00:000Z

format

one of text/xml, text/html, html, xml

The format of the return value

text/html

text/xml

...

Example of xml format

xml
Code Block
xml
titleExampe of xml return
xml
<objectDatastreams pid="demo:testObject" 
                   asOfDateTime="2009-01-01T03:00:00:000Z" 
                   baseURL="http://localhost:8080/fedora/" 
  xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://www.fedora.info/definitions/1/0/access/ 
                      http://localhost:8080/fedora/listDatastreams.xsd">
  <!--Zero or more repetitions:-->
  <datastream dsid="DC" label="" mimeType="text/xml"/>
</objectDatastreams>

...

The label and the mimeType will be empty strings if they are not specified for the particular datastream

Code Block
xmlxml
titleXml schema
xml
<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema targetNamespace="info:fedora/fedora-system:def/listDatastreams#" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="info:fedora/fedora-system:def/listDatastreams#" elementFormDefault="qualified">
	<!-- root element declaration -->
	<xsd:element name="objectDatastreams">
		<xsd:complexType>
			<xsd:complexContent>
				<xsd:extension base="objectDatastreamsType"/>
			</xsd:complexContent>
		</xsd:complexType>
	</xsd:element>
	<!-- complex type declarations -->
	<xsd:complexType name="objectDatastreamsType">
		<xsd:sequence>
			<xsd:element name="datastream" type="datastreamType" minOccurs="0" maxOccurs="unbounded"/>
		</xsd:sequence>
		<xsd:attribute name="pid" type="xsd:string" use="required"/>
		<xsd:attribute name="asOfDateTime" type="xsd:string" use="optional"/>
		<xsd:attribute name="baseURL" type="xsd:string" use="required"/>
	</xsd:complexType>
	<xsd:complexType name="datastreamType">
		<xsd:attribute name="dsid" type="xsd:string" use="required"/>
		<xsd:attribute name="label" type="xsd:string" use="required"/>
		<xsd:attribute name="mimeType" type="xsd:string" use="required"/>
	</xsd:complexType>
</xsd:schema>

GET /objects/{pid}/datastreams/{dsID} - get datastream profile

...

GET /objects/\{pid}/datastreams/\{dsID}?\[asOfDateTime]\[validateChecksum]

Gets the datastream profile, as it looked at the specified time. The datastream profile is a datastructure containing all the datastream properties, but not the content.

...

  • datetime: This attribute is not in the schema. See http://fedora-commons.org/jira/browse/FCREPO-612
  • VersionID: Each version of a datastream has a timestamp and an ID. This is the Id of the newest version from before the "asOfDateTime" time.
  • CreateDate: Misleadingly named, it is the date where the latest change was performed on the datastream. Corresponds to versionID.
  • ControlGroup: One of X (inline Xml), M (Managed content), E (External) or R (Redirect).
  • Size: is only trustworthy for inline (X) datastreams, but will be reported for all.
  • InfoType: DATA or one of the METS MDType values. Used to maintain backwards compatibility with METS-Fedora
  • Location: For internal datastreams, it is the internal id (as shown in the example). For external, it is the url to the content.
  • LocationType: URL for external datastreams (E and R controlgroup). INTERNAL_ID for managed datastreams. Not set for inline datastreams
  • ChecksumTupe: One of DISABLED, MD5, SHA-1, SHA-256, SHA-384, SHA-512, HAVAL, TIGER, WHIRLPOOL
Code Block
xmlxml
titleXml schema
xml
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
	elementFormDefault="qualified">
	<xs:element name="datastreamProfile">
		<xs:complexType>
			<xs:sequence>
				<xs:element name="dsLabel" type="xs:string" />
				<xs:element name="dsVersionID" type="xs:string" />
				<xs:element name="dsCreateDate" type="xs:dateTime" />
				<xs:element name="dsState">
                    <xs:simpleType>
                        <xs:restriction base="xs:string">
                            <xs:enumeration value="A"/>
                            <xs:enumeration value="D"/>
                            <xs:enumeration value="I"/>
                        </xs:restriction>
                    </xs:simpleType>				
				</xs:element>
				<xs:element name="dsMIME" type="xs:string" />
				<xs:element name="dsFormatURI" type="xs:anyURI" />
				<xs:element name="dsControlGroup" >
                    <xs:simpleType>
                        <xs:restriction base="xs:string">
                            <xs:enumeration value="X"/>
                            <xs:enumeration value="M"/>
                            <xs:enumeration value="R"/>
                            <xs:enumeration value="E"/>
                        </xs:restriction>
                    </xs:simpleType>
				</xs:element>
                <xs:element name="dsSize" type="xs:integer" />
                <xs:element name="dsVersionable" >
                    <xs:simpleType>
                        <xs:restriction base="xs:string">
                            <xs:enumeration value="true"/>
                            <xs:enumeration value="false"/>
                        </xs:restriction>
                    </xs:simpleType>
                </xs:element>
                <xs:element name="dsInfoType" type="xs:string" />
                <xs:element name="dsLocation" type="xs:string" />
                <xs:element name="dsLocationType" type="xs:string" />                                
                <xs:element name="dsChecksumType" >
                    <xs:simpleType>
                        <xs:restriction base="xs:string">
                            <xs:enumeration value="DEFAULT"/>
                            <xs:enumeration value="DISABLED"/>
                            <xs:enumeration value="MD5"/>
                            <xs:enumeration value="SHA-1"/>
                            <xs:enumeration value="SHA-256"/>
                            <xs:enumeration value="SHA-385"/>
                            <xs:enumeration value="SHA-512"/>
                            <xs:enumeration value="HAVAL"/>
                            <xs:enumeration value="TIGER"/>
                            <xs:enumeration value="WHIRLPOOL"/>
                        </xs:restriction>
                    </xs:simpleType>
                </xs:element>
                <xs:element name="dsChecksum" type="xs:string" />
                <xs:element name="dsChecksumValid" minOccurs="0">
                    <xs:simpleType>
                        <xs:restriction base="xs:string">
                            <xs:enumeration value="true"/>
                            <xs:enumeration value="false"/>
                        </xs:restriction>
                    </xs:simpleType>
                </xs:element>
                <xs:element name="dsAltID" minOccurs="0" maxOccurs="unbounded" type="xs:string" />
			</xs:sequence>
			<xs:attribute name="pid" use="required">
				<xs:simpleType>
					<xs:restriction base="xs:string" />
				</xs:simpleType>
			</xs:attribute>
            <xs:attribute name="dsID" use="required">
                <xs:simpleType>
                    <xs:restriction base="xs:string" />
                </xs:simpleType>
            </xs:attribute>
		</xs:complexType>
	</xs:element>     
</xs:schema>

DELETE /objects/{pid}/datastreams/{dsID} - purge datastream

Wiki MarkupDELETE /objects/\{pid}/datastreams/\{dsID}?\[startDT]\[endDT]\[logMessage]\[force]

Parameter

Format

Meaning

Default

Example

startDT

yyyy-MM-ddTHH:mm:ss.SSSZ

Purge the datastream versions created after this date

From the beginning

2009-01-01T03:00:00:000Z

endDT

yyyy-MM-ddTHH:mm:ss.SSSZ

Purge only versions created before this date

Now

2009-01-01T03:00:00:000Z

logMessage

String

The message to store in the log, about the purge

Empty string

"Deleted this datastream because it was not used anymore"

force

one of true, false

Force the purge, even it it breaks a data contract. If set to true, the request will fail, a general exception will be thrown and the return code will be 500. See http://fedora-commons.org/jira/browse/FCREPO-613

false

false

...

PUT /objects/{pid}/datastreams/{dsID} - modify datastream

...

PUT /objects/\{pid}/datastreams/\{dsID}?\[dsLocation]\[altIDs]\[dsLabel]\[versionable]\[dsState]\[formatURI]\[checksumType]\[checksum]\[mimeType]\[logMessage]\[force]\[ignoreContent]
+ multipart file as request content

The behaivour depends on the datastream controlGroup and the content provided and the ignoreContent parameter

...

POST /objects/{pid}/datastreams/{dsID} - modify or create datastream

...

POST /objects/\{pid}/datastreams/\{dsID}?\[controlGroup]\[dsLocation]\[altIDs]\[dsLabel]\[versionable]\[dsState]\[formatURI]\[checksumType]\[checksum]\[mimeType]\[logMessage]
+ multipart file as request content

Modify or create a datastream. Functions almost identical to the above method PUT /objects/{pid}/datastreams/{dsID} but with a few differences. There is no ignoreContent parameter, so the functioning with dsLocation and message content is more complex.

...