h3 { background-color: #eee; padding: 0.6em; }
#content .code { margin-left: 2.5em!important; background-color: #fafafa!important; }
.pdl .syntaxhighlighter table td.code .container, .syntaxhighlighter .line.alt2, .syntaxhighlighter .line.alt1 { background-color: #fafafa!important; }

Table of Contents

 

Overview

Introduction

The Fedora 4 HTTP API is generally a RESTful API. HTTP methods like GET, PUT, POST and DELETE are implemented on most resource paths. The API also relies heavily on content negotiation to deliver context-appropriate responses, and a HATEOAS-driven text/html response (providing a decent GUI experience on top of the repository).

 

The Fedora 4 RDF-based responses may be serialized as:

The text/html response also includes embedded RDFa markup.

The API is based loosely around the Linked Data Platform 1.0 Architecture, which:

[...] describes the use of HTTP for accessing, updating, creating and deleting resources from servers that expose their resources as Linked Data.  It provides clarifications and extensions of the rules of Linked Data [LINKED-DATA]:

  1. Use URIs as names for things
  2. Use HTTP URIs so that people can look up those names
  3. When someone looks up a URI, provide useful information, using the standards (RDF*, SPARQL)
  4. Include links to other URIs, so that they can discover more things

Note: Fedora doesn't currently support blank nodes.

Changes planned

Endpoints

Resources

Repository objects can be loosely divided into two classes of resources:

 - Object and containers ("fedora:object"), containing RDF properties and 0 or more child nodes
 - Binaries, containing any binary payload (roughly corresponding to Fedora 3 datastreams)

Objects

 

Binary Content

 

Batch Operations

Export and Import

Locking

Versioning

Services

Access Roles

 

Backup and Restore

Fixity

Identifiers 

Namespaces

Node Types

Search

Sitemaps

Transactions

Transform

Workspaces