Enhanced Web Services (Design Page)

This was the project page used while designing the Webservices.rest Module. See that module's documentation for the most up-to-date information

Background

OpenMRS has an explicit API which has not been cleanly or explicitly exposed through web services.  We have a REST module and SOAP-based module(s) where folks have done work in the area.  We need a clear and explicit strategy for supporting web services.

Requirements

  • A single OpenMRS module to support the core web service needs. 

  • This module will follow a RESTful approach

  • The framework should allow new web service methods to be added with minimal effort

  • At this point, we can leave the Java objects with Hibernate magic (all object properties assumed to exist) and convert the data to DTOs from our module.  These DTOs may inform how we transform our API in the future though.

  • Requirements for Version 1 of this module

API Service and Object Design

Action Plan

  1. Web services will be developed as an augmentation to the existing API... that is, we will not rewrite the current API and then expose them as web services... we will write the web services as an independent activity, hoping that they inform the further maintenance and redevelopment of the existing API.

  2. Support OAuth or an equivalent authentication scheme

  3. An upcoming web services sprint is scheduled. See Development Sprints and the ws sprint page: 2011-05-16 Development Sprint

Interested Parties and Mentors

@Ben Wolfe (mentor)

@Burke Mamlin

@Darius Jazayeri

@Saptarshi Purkayastha

See Also

Result / Output

See the REST Module for the documentation and final output.