Skip to content

Creating objects in multiple steps

Giulio edited this page Jan 3, 2022 · 3 revisions

In 4 steps

1) Create empty inactive object

POST https://services.phaidra-sandbox.univie.ac.at/api/object/create/:cmodel

Request example:

 curl -X POST -u username:password https://services.phaidra-sandbox.univie.ac.at/api/object/create/cmodel%3APicture

Response example:

{"alerts":[],"pid":"o:1","status":200}

2) Add data (OCTETS datastream)

POST https://services.phaidra-sandbox.univie.ac.at/api/object/o:1/data

Param Value
mimetype [mimetype]
file [upload file via "multipart/form-data"]
curl -X POST -u username:password -F "mimetype=image/tif" -F "file=@data.tif" https://services.phaidra-sandbox.univie.ac.at/api/object/o:1/data

Response example:

{"alerts":[],"status":200}

3) Add metadata (UWMETADATA datastream or MODS datastream or JSON-LD datastream)

POST https://services.phaidra-sandbox.univie.ac.at/api/object/o:1/metadata

See datastream examples for the metadata.json structure.

Request example:

curl -X POST -u username:password https://services.phaidra-sandbox.univie.ac.at/api/object/o:1/metadata -F metadata=@metadata.json

Response example:

{"alerts":[],"status":200}

4) Activate object

POST https://services.phaidra-sandbox.univie.ac.at/api/object/o:1/modify

Param Value
state A

Request example:

curl -X POST -u username:password https://services.phaidra-sandbox.univie.ac.at/api/object/o:1/modify -F 'state=A'

In 7 steps (not recommended)

1) Create empty inactive object

POST https://services.phaidra-sandbox.univie.ac.at/api/object/create

Request example:

 curl -X POST -u username:password https://services.phaidra-sandbox.univie.ac.at/api/object/create

Response example:

{"alerts":[],"pid":"o:1","status":200}

2) Define content model

POST https://services.phaidra-sandbox.univie.ac.at/api/object/o:1/relationship/add

Param Value
predicate info:fedora/fedora-system:def/model#hasModel
object info:fedora/cmodel:Picture (model depends on the type of object you want to create)

Request example:

curl -X POST -u username:password -F "predicate=info:fedora/fedora-system:def/model#hasModel" -F "object=info:fedora/cmodel:Picture" https://services.phaidra-sandbox.univie.ac.at/api/object/o:1/relationship/add

Response example:

{"alerts":[],"status":200}

3) Add oai item id

POST https://services.phaidra-sandbox.univie.ac.at/api/object/o:1/relationship/add

Param Value
predicate http://www.openarchives.org/OAI/2.0/itemID
object oai:phaidra-sandbox.univie.ac.at:o:1

Request example:

curl -X POST -u username:password -F "predicate=http://www.openarchives.org/OAI/2.0/itemID" -F "object=oai:phaidra-sandbox.univie.ac.at:o:1" https://services.phaidra-sandbox.univie.ac.at/api/object/o:1/relationship/add

Response example:

{"alerts":[],"status":200}

4) Add THUMBNAIL datastream

POST https://services.phaidra-sandbox.univie.ac.at/api/object/o:1/datastream/THUMBNAIL

Param Value
mimetype image/png
location http://phaidra-sandbox.univie.ac.at/preview/o:1
controlgroup E

Request example:

curl -X POST -u username:password -F "mimetype=image/png" -F "location=http://phaidra-sandbox.univie.ac.at/preview/o:1" -F "controlgroup=E" https://services.phaidra-sandbox.univie.ac.at/api/object/o:1/datastream/THUMBNAIL

Response example:

{"alerts":[],"status":200}

4) Add STYLESHEET datastream

POST https://services.phaidra-sandbox.univie.ac.at/api/object/o:1/datastream/STYLESHEET

Param Value
mimetype text/xml
location http://static.phaidra-sandbox.univie.ac.at/stylesheets/externalview.xsl
controlgroup E

Request example:

curl -X POST -u username:password -F "mimetype=text/xml" -F "location=http://static.phaidra-sandbox.univie.ac.at/stylesheets/externalview.xsl" -F "controlgroup=E" https://services.phaidra-sandbox.univie.ac.at/api/object/o:1/datastream/STYLESHEET

Response example:

{"alerts":[],"status":200}

5) Add data (OCTETS datastream)

POST https://services.phaidra-sandbox.univie.ac.at/api/object/o:1/data

Param Value
mimetype [mimetype]
file [upload file via "multipart/form-data"]
curl -X POST -u username:password -F "mimetype=image/tif" -F "file=@data.tif" https://services.phaidra-sandbox.univie.ac.at/api/object/o:1/data

Response example:

{"alerts":[],"status":200}

6) Add metadata (UWMETADATA datastream)

POST https://services.phaidra-sandbox.univie.ac.at/api/object/o:1/uwmetadata

See Documentation for the uwmetadata.json structure.

Request example:

curl -X POST -u username:password https://services.phaidra-sandbox.univie.ac.at/api/object/o:1/uwmetadata -F metadata=@metadata.json

Response example:

{"alerts":[],"status":200}

7) Activate object

POST https://services.phaidra-sandbox.univie.ac.at/api/object/o:1/modify

Param Value
state A

Request example:

curl -X POST -u username:password https://services.phaidra-sandbox.univie.ac.at/api/object/o:1/modify -F 'state=A'

Response example:

{"alerts":[],"status":200}

Clone this wiki locally