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.
API Service and Object Design
Action Plan
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.
Support OAuth or an equivalent authentication scheme
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
We did an initial prototype of this using the CXF framework before deciding to build RESTful services. That work is at: Webservices.cxf Module
Result / Output
See the REST Module for the documentation and final output.