...
Under what conditions should the API extension architecture expose a URI, or invoke this extensionan asynchronous interaction be invoked? The current understanding of 'invoke' means "direct an HTTP request or response to an extension for processingfor a resource." If this particular use case uses 'invoke' in a different way, please define.
Examples of preconditions include:
- Extension Interaction is invoked when a request is made to any repository resource.
- Extension Interaction is invoked when a request to any resource contains certain content hinting at slow storage (e.g. is a POST, or contains a particular HTTP header)
- URIs with pattern /path/to/object/ext:myExtension are exposed whenever a given Fedora object has an
rdf:type
ofmyns:myType
- Extension Interaction is invoked when a request is made to a web resource (URI) exposed by the external service (i.e. API-X.)
Deployment or Implementation notes
...
- The API-X defines a single public URI for this service, which abstracts away the details of its real location on my backend infrastructure, allowing the implementing web service to be easily re-located.
- The API-X allows the presence of this service to be discovered by clients
- The API-X provides a convenient way to integrate this service as a filter for all requests.
- The API-X implementation provides a convenient way to distribute and deploy the extension so that others can easily use or evaluate it (i.e. API-X)