Task #3271
Story #3265: Implement Query API
Modify architecture docs to include MN Query API methods
100%
Description
As Member Node stacks migrate to the DataONE REST API, they will also require a search mechanism. Certain ITK clients that work directly against a Member Node (such as Morpho, R, etc) will be querying the Member Node directly. To this end, we need to create the MN equivalent to the CN query API. We discussed MNDiscover, but it seems that MNQuery would probably be most appropriate. Change the architecture docs to include:
MNQuery.listQueryEngines()
MNQuery.getQueryEngineDescription()
MNQuery.query()
We've discussed what Tier this API should be. If it were Tier 1.5, we assume that Tier 2, 3 and 4 MNs will implement it since the Tiers are defined to cumulatively increase in functionality. However, some MNs may want to provide Tier 4 functionality, but not provide MNQuery. If it were defined as Tier 5, MNs would then need to be Tier 4 first (unless we change our tiering scheme).
Ben and I discussed the idea of defining APIs that fall outside of the Tier scheme, and are completely optional. In the documentation, we could include a section called 'Optional APIs', and add MNQuery to it. This would allow an MN at any level implement certain functionality. So, our recommendation was to define MNQuery as an API and not add it to a Tier, but classify it in 'Optional APIs'.
History
#1 Updated by Dave Vieglais about 12 years ago
- Status changed from New to Closed
Created new MNQuery API as an optional tier 1 API.
#2 Updated by Rob Nahf about 12 years ago
- Target version changed from Sprint-2012.39-Block.5.4 to Sprint-2012.41-Block.6.1
#3 Updated by Skye Roseboom about 12 years ago
- Target version changed from Sprint-2012.41-Block.6.1 to Sprint-2012.44-Block.6.2