DuraSpace Aims to Formalize Fedora RESTful API into Testable Specification

DuraSpace, a provider of several open source digital repository and storage platforms, has announced that the Fedora community is currently working on the initial phases of drafting a Fedora RESTful API specification. Fedora currently has a stable, RESTful API and an associated reference implementation. However, this current effort by DuraSpace and the Fedora community is aimed at formalizing the Fedora RESTful API into a testable specification that is better aligned with community standards.

Fedora is an open source repository management and digital content distribution platform designed primarily for building and managing digital libraries and archives for the purpose of preserving and accessing digital information. The platform can also be used for building large digital collections of historical, cultural, and scientific content. Fedora is one of several open source digital repository and storage platforms provided by DuraSpace.

The concept of the Fedora architecture was first described back in 1998 in a paper titled "Flexible and Extensible Digital Object and Repository Architecture (FEDORA)." Software development and internet technologies have changed a lot since the Fedora architecture was first introduced. DuraSpace has posted details as to what led the organization to start work on a specification for the Fedora RESTful API. The post states that:

"It has become clear that attempting to address all of the requirements from the variety of Fedora installations results in an implementation that only partially satisfies any given institution, at extra cost to all. This has led to the organizational decision to return the focus of the Fedora repository to its essential, core capabilities while encouraging decoupled integration with external services. Examples of common external services include validation-on-ingest, bulk ingest/retrieval/edit, resource transformation, derivative generation, etc."

With the help of the Fedora community, DuraSpace aims to draft a formal and testable specification for the Fedora RESTful API that is better aligned with W3C and other modern standards such as the Linked Data Platform (LDP), Memento, WebAccessControl, and Fixity on ingest. The specification will define the core components of the Fedora API which includes:

  • Create/Read/Update/Delete (CRUD) for repository resources
  • Fixity checking and reporting
  • Resource versioning
  • Atomic batch operations
  • Authorization
  • Messaging service provider interface (SPI)

The company explains in a post that the rationale for creating an API specification is to help ensure that the Fedora API will provide developers a stable and secure method of integrating the Fedora platform with applications, will allow for customizable server-side implementation, and will ensure Web interoperability. The ultimate goal for creating a Fedora API specification is so that the Fedora API will be based on modern standards and built for longevity.

Andrew Woods, technical lead for the Fedora Project at DuraSpace, provided ProgrammableWeb additional information about the Fedora RESTful API specification project. Woods said that there are initial drafts of all six parts to the Fedora API specification and the community is "now applying concerted attention to each individual section to bring them to their respective initial, published states."

Woods also explained that the "likely time frame for all six sections to be in a published state would be in the fall of 2016. However, it should be made clear that the Fedora specification effort will continue to produce subsequent versions of the specifications. It is not a process that is started and finished, but rather an ongoing effort at continuing to ensure that the Fedora specification evolves with community needs and standards."

For more information about the Fedora platform and the Fedora RESTful API specification, visit http://fedorarepository.org/

Be sure to read the next Content Management article: GraphCMS Launches API-First Content Management System