Table of Contents

  1. Introduction
  2. API-A Methods
  3. API-M Methods
  4. WADL
  1. Introduction

    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.

  2. API-A Methods

    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
  3. API-M Methods

    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
  4. WADL

    1. Offline For reference, an offline copy of the REST WADL is available here.
    2. Online When running your own Fedora server, an online copy of the REST WADL will be made publicly available at /objects/application.wadl. For example: http://localhost:8080/fedora/objects/application.wadl