Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Overview

Insert brief description of the project here.

Proposed Wiki reorganization:

...

How to get involved

...

  1. Design Documents (#2 below)
  2. Proofs of Concept (#3 below)
  3. Github (external link)

...

  1. Requirements
  2. Use-Cases
  3. Use-Cases Evaluation

...

  1. Overview
  2. Description and link to each POC

 

Proposal Sketch

https://docs.google.com/document/d/1UHQMXgnGoIXfe33a6CM6k3IkL3SsYqzkkWBRMaJxMew/edit

Goals

Use Cases

This is an initial list of use cases for discussion and possible consideration as part of the design and requirements gathering process for the API extension architecture.  Please edit this page to add additional use cases relevant to your institution, along with a brief description

  1. Sharing & Deploying
    1. Deploying extensions to one's own repository
      1. Simple configuration-based approach which associates a URI pattern on compliant resources with the URI of some existing backend web service, effectively acting like a reverse proxy
      2. Provide a JAX-RS class which implements an extension.
      3. Provide camel route(s) which implement an extension, or filter the representation of a resources exposed by the extension framework.
      4. Run extensions in an instance of Karaf (or cluster of karaf instances), separate from the repository
      5. Hot deploy or re-configure an extension
    2. Authoring API extensions for others to use
  2. Service Discovery & Linking
    1. Listing URIs of services available on a given object
  3. Asynchronous services or workflows
    1. Ingesting a package of objects
    2. Preparing and shipping a package of objects to some other storage (e.g. APTrust, DPN, Amazon Glacier, etc.)
  4. Constraint enforcement & reporting
    1. Validation with respect to a model as a prerequisite to successful write operations
    2. Validation reports
  5. Domain Models & APIs
    1. Complex/multi-part objects
    2. IIIF
  6. Transformation & Representations
    1. Return a representation that uses information from a graph of objects
    2. Return a representation that is stable regardless of changes in the underlying object or objects
    3. Return a representation that is created using a model of the essential characteristics of one or a graph of objects
    4. Return an emulation of the data and behavior of an object or graph of objects
  7. External access control

All Fedora adopters are welcome and encouraged to participate in this community effort.  The group holds meetings via conference call on a biweekly basis, currently every second Thursday at 1pm Eastern (US) Time.  Notes from past meetings and agendas for upcoming meetings are available via the links to the right.

Participation can take many forms, from attending meetings, contributing use-cases, and drafting documentation, to acting as a stakeholder or contributing code for development efforts.  Just call in to a meeting or get in touch with some of the participants listed below to find out how you can help!

People and Roles

Current participants in the API-X group include:

  1. Design Documents
    1. An initial Proposal Sketch
    2. API-X Use Cases
    3. Use Cases Evaluation Process
  2. Proof of Concepts
    1. POC 1
    2. POC 2
  3. Initial Implementation
    1. Github

...