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

Compare with Current View Page History

« Previous Version 2 Next »

Unable to render Jira issues macro, execution error.

Draft - put together by Nigel on 15 Aug – I hope this can be a starting point to get some agreement and consistency over how we develop the OMAS interfaces.


Scope
* Over time general external applications should find the functionality they need through this level of interface (OMRS is more geared to direct metadata exchange) & other Atlas APIs will be superceeded
* OMAS interfaces are targetted at a particular type of consumer with the objective of making it easy for that consumer - transforming, mapping data from Atlas/OMRS as required
* Given the application focus most consuming apps may interact with only 1 or perhaps 2 OMASs. Having to interact with more indicates incomplete OMAS definitions. Some duplication is to be expected.
* OMAS interfaces will use OMRS to manage the underlaying metadata (other than in any transitionary phase)
* The structures used on the REST API should be similar to the messaging api
* Where the same representation of an underlying entity etc is similar between OMASs, consideration should be given to using the same structure. However the second point is the more critical
* A standard list of scoping parameters has been documented (see connector OMAS), these should be implemented IF RELEVANT but ommitted if not.

General
* The performance framework will be used at a minimum to record response times for all API calls

REST API

* GET for query, nothing should change in the entity. No side effects (except last access time/audit logs)
* PUT is used for create
* POST is used for update or actions with side effects
* DELETE will delete (usually soft)
* PATCH is not used
* Scoping parameters should feature in GETs as query parameters
* Pagination should be supported (Page Number & Page Size)
* Only json is supported
* A non successful response will send back a sensible http status code, a more detailed enumeration specifying the type of error, a specific, unique error code, and a string containing other helpful information or parameters. A "user response" is also returned. (Example I used for GAF is here - follow swagger link)
* The endpoint will be /v2/<omasname>
* The /v2/<omasname>/>object> will be a plural noun

Kafka Messaging (pub/sub)
* Each OMAS will listen to ONE incoming omas kafka topic (per omas) for requests to process
* Each OMAS will listen to OMRS kafka topic so as to respond to changes in the metadata repostitory
* Deployment-time properties will configure the topic names to be used
* Out of order messages need to be handled "sensibly" [requires further discussion] & clustered environments catered for
* Messaging infrastructure should be pluggable, but only kafka will be implemented

Documentation
* A skeleton Java implementation will initially be committed to generate Swagger API
* When the community is broadly happy the implementation will be filled out

  • No labels