Old Release

This documentation covers an old version of Fedora. Looking for another version? See all documentation.

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 2 Next »

REST API

The primary way for applications to work with a Fedora 4 repository is through the RESTful HTTP API.

  • REST API
    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).

External Search and Triplestore

In addition to working with repository content directly, many applications will work with external search engines and triplestores, which are kept in sync with the repository when updates are made.

External Search

To support the differing needs for sophisticated, rich searching, Fedora 4 comes with a standard mechanism and integration point for indexing content in an external service.  This could be a general search service such as Apache Solr or a standalone triplestore such as Sesame or Fuseki.

External Triplestore

RDF support is a core feature of Fedora 4, used as the primary data format for the REST API.  A triplestore is not bundled into the repository itself.  Instead, Fedora 4 sends events when the repository is updated, and the Indexer copies RDF from the repository to an external triplestore to keep it in sync with the repository.  This pattern, which is also used for search functionality for the same reasons, allows maximum flexibility about what triplestore to use, and removes the overhead of keeping the triplestore in sync from the core repository functionality.

Frameworks

Hydra and Fedora 4

Islandora and Fedora 4

Extending Fedora 4

Authentication/Authorization Modules

Federation Connector

Storage Policy

Contributing to Fedora

Fedora is built with the contributions of developers just like you.  If you've found a bug, or have a feature you want to add, we would love your help.  Our Guide for New Developers includes links to our project resources (source code, issue tracker, mailing lists, etc.) and our Git workflow.

  • No labels