The contents of results returned by Citoid are good candidates for storing in RESTBase as they are (mostly) deterministic and consequently immutable. Moreover, that would speed up obtaining results for previous Citoid queries considerably.
See T103811: Public API endpoints for new services for the proposed API endpoints. The workflow would be the following:
- The client issues a request to https://{domain}/api/rest_v1/data/citation/{format}/{query}
- RESTBase checks whether the result is available in storage using (language,format,query) as the look-up key; if found, return the stored response
- Issue a request to Citoid
- Store the response using (language,format,query)as the key
- Return the response
Action Items
- Set up the public endpoints in RESTBase
- Hook-up the necessary back-end modules in RESTBase
- Move to using the public endpoint in the Citoid extension (Deployed by Jan 20).
- Update documentation