Versions Compared

Key

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

...

  • Provide its usual representation of a given resource

Use Case Evaluation

Web Resources and Interactions

  • The user interacts with Fedora resources, at their own native URIs, as usual. 
  • The extension filters requests and responses to Fedora in order to inject signposting headers into the response on its way to the user

Preconditions

  • A GET or HEAD request is made to a Fedora resource
  • The extension has been configured to specify the http headers to be injected into the response
  • The data from which the header values will be derived is accessible to the extension

Deployment or Implementation notes

  • A camel route would be a logical implementation of the
  • Deployed in a layer serving as a reverse proxy, routing request through the extension is straightforward
  • Deployed in the same OSGI or servlet container as Fedora, the appropriate place to enact the extension may be a servlet filter

Proposed Requirements

  • API-X must be able to identify requests to Fedora resources, and pass the request to the extension for such requests
  • API-X must route traffic to and from this extension via a filter pattern; invoking the extension as a filter on a request or response, then routing the filtered request or response to its destination
    • Corollary:  Used in a filter pattern, an extension implementation must not be required to perform request routing to a particular concrete destination (e.g. a Fedora repository).
  • API-X must be able to invoke extension implementation in a manner appropriate to the extension architecture's manner of deployment.
    • In other words, a given extension should be depolyable into API-X if regardless of whether API-X itself is deployed as a separate service in a proxy pattern, or within the same servlet container as a running Fedora instance. 

API-X Value Proposition

  • Allows the same extension to be deployed in two vastly different contexts (reverse proxy, or in same container as Fedora)
  • Provides the ability to transparently modify the representation of a Fedora resource in an existing Fedora repository