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

Compare with Current View Page History

« Previous Version 8 Next »

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 created from some kind of plug-in processing
    3. Return a representation that created using a model of the essential characteristics of one or a graph of objects
    4. Return a representation that is created from some plug-in transformation
    5. Return a representation that is a format transformation where the business-semantics remain consistent (overlaps but not exactly the same as content negotiation)
  7. External access control

Requirements

 

Related Resources

  1. https://wiki.duraspace.org/display/FF/AIC+Use+Cases:+API+Extension+Architecture
  2. https://wiki.duraspace.org/display/FF/Transformation+of+%28meta%29data+for+certain+types+of+resources
  3. https://wiki.duraspace.org/display/FF/Fedora3-modify-style+xml+wrapper+for+the+rest+API
  4. https://groups.google.com/d/msg/fedora-community/A61qaLmFH84/rxrJ_xgJZJYJ
  5. https://groups.google.com/forum/#!msg/fedora-tech/UovyLGZeToE/lNRtWZZ4JM4J
  • No labels