REST Documentation Generator Project

Primary mentor

Wyclif Luyima

Backup mentor

raff

GSoC student

Zakaria Amine

Background

Webservices.rest is probably the most actively developed and used module in OpenMRS. It is a part of the OpenMRS platform and is bundled with each new release. It provides REST API for OpenMRS, which is used by modern UIs and external services. Currently most of its documentation is auto-generated, but it does not cover all exposed features. The goal of this project is to make the REST documentation generator more robust and easier to use.

Objectives

  1. Implement a tool to extract and generate documentation for SearchHandlers. A list of supported parameters is provided by developers in SearchConfig, which is a required field of every SearchHandler.
  2. The documentation should be improved to list differences in resource representations or available search parameters based on installed OpenMRS version or modules.
  3. Implement a way for developers to document any field of a resource. The provided documentation should be extracted and put in the auto-generated documentation. See DelegatingResourceDescription.
  4. Add a way to export the generated documentation in wiki format directly from the running module by going to Administration -> REST Web Services -> Help.
  5. (Alternative to 4. is to consider adopting something like http://swagger.io/ or whatever is used by https://openmrs.github.io/openmrs-contrib-modulus/ to make the docs look better and easier to consume)

Skills Needed

  • Decent Java coding skills
  • Ability to work with minimal supervision

Resources

  1. Webservices.rest 
  2. REST Web Service Resources in OpenMRS 1.9
  3. Old documentation creator