Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
CSS Stylesheet
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

Expand

Table of Contents

Overview

Introduction

Excerpt
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:

  • application/n3 (or text/rdf+n3 or text/n3)ld+json
  • application/n-quadsapplication/n-triples
  • application/rdf+jsonapplicationxml
  • text/n3 (or text/rdf+xmln3)
  • text/trigplain
  • text/turtle (or application/x-turtle)

The text/html response also includes embedded RDFa markup.

The API is based loosely around the Fedora 4 implements 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

...

Changes planned

  • Asynchronous API support

Endpoints

Resources

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

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

Objects

...

Containers

excerpt-

...

Binary Content

Include Page
RESTful HTTP API - Binary ContentContainers
RESTful HTTP API - Binary ContentContainers

Batch Operations

...

nopaneltrue

...

Export and Import

 

excerpt-include
RESTful HTTP API - Export and Import
RESTful HTTP API - Export and Import

...

nopaneltrue
Include Page
RESTful HTTP API - LockingRESTful HTTP API - Locking

Versioning

Versioning

 

excerpt-include
RESTful HTTP API - Versioning
RESTful HTTP API - Versioning
nopaneltrue

Services

Access Roles

 

excerpt-include
RESTful HTTP API - Access Roles
RESTful HTTP API - Access Roles
nopaneltrue

Backup and Restore

 

excerpt-include
RESTful HTTP API - Backup and Restore
RESTful HTTP API - Backup and Restore

...

include
nopanel
trueRESTful HTTP API -

Fixity

...

 

excerpt-include
RESTful HTTP API - IdentifiersFixity
RESTful HTTP API - IdentifiersFixity

...

nopanel
Include Page
RESTful HTTP API - NamespacesRESTful HTTP API - Namespaces
true

Node Types

 

excerpt-include
RESTful HTTP API - Node Types
RESTful HTTP API - Node Types

...

nopanel
Include Page
RESTful HTTP API - SearchRESTful HTTP API - Search

Sitemaps

true

 

Transactions

 

excerpt-include
RESTful HTTP API - SitemapsTransactions
RESTful HTTP API - Sitemaps Transactions
Include Page
RESTful HTTP API - TransactionsRESTful HTTP API - Transactions

Transform

nopaneltrue

Transform

 

excerpt-include
RESTful HTTP API - Transform
RESTful HTTP API - Transform

Workspaces

nopaneltrue
Include PageRESTful HTTP API - WorkspacesRESTful HTTP API - Workspaces