The Fedora REST API is a new, experimental feature that exposes a subset of the Fedora Access and Management APIs as a RESTful (Representational State Transfer) Web Service. The REST API may replace the API-A-Lite and API-M-Lite interfaces in future versions of Fedora.
As the Fedora REST API is an experimental interface, it should not be considered stable. In particular, future releases may implement a different subset of the Fedora Access and Management APIs and may employ different URL endpoints or HTTP methods. Finally, the REST API has not undergone security testing, so production repositories are cautioned against enabling the REST API without thorough evaluation.
For examples of how to use the REST API programmatically, please refer to the TestRESTAPI test class.
| API Method | HTTP Method | Example URL Endpoint |
| describeRepository | not implemented | |
| getObjectProfile | GET | /objects/demo:29 |
| listMethods | GET | /objects/demo:29/methods |
| listDatastreams | GET | /objects/demo:29/datastreams |
| getDatastreamDissemination | GET | /objects/demo:29/datastreams/DC |
| getDissemination | not implemented | |
| findObjects | GET | /objects?pid=true&terms=demo:29 |
| resumeFindObjects | GET | /objects?sessionToken=xyz |
| getObjectHistory | GET | /objects/demo:29/versions |
| API Method | HTTP Method | Example URL Endpoint |
| ingest | POST | /objects/new |
| ingestObject | not implemented | |
| modifyObject | PUT | /objects/demo:29?label=foo |
| getObjectXML | GET | /objects/demo:29/objectXML |
| exportObject | GET | /objects/demo:29/export |
| purgeObject | DELETE | /objects/demo:29 |
| addDatastream | POST | /objects/demo:29/datastreams/DS99?controlGroup=X&dsLabel=foo |
| describeUser | not implemented | |
| modifyDatastreamByReference | PUT | /objects/demo:29/datastreams/DS99 |
| modifyDatastreamByValue | PUT | /objects/demo:29/datastreams/DS99 |
| setDatastreamState | not implemented | |
| setDatastreamVersionable | not implemented | |
| compareDatastreamChecksumRequest | not implemented | |
| getDatastream | not implemented | |
| getDatastreams | not implemented | |
| getDatastreamHistory | not implemented | |
| purgeDatastream | DELETE | /objects/demo:29/datastreams/RELS-EXT |
| getNextPID | GET | /objects/nextPID |
| getRelationships | not implemented | |
| addRelationship | not implemented | |
| purgeRelationship | not implemented | |
/objects/application.wadl.
For example:
http://localhost:8080/fedora/objects/application.wadl