Hi,

as discussed in the comments section in
https://github.com/apache/openmeetings/commit/4daf7c1f53738cd786dc976114cc5278b4f05f4f#comments


we would like to propose a breaking change for the OpenMeetings Json/Rest
API in v7.0.0

Problem: JSON response wrapping
Currently CXF-RS is configured to wrap the JSON response into another
object.

Example: Method signature: public List<AppointmentDTO> range(...) { ... }
(Example taken from
https://github.com/apache/openmeetings/blob/master/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/CalendarWebService.java#L111
)

OLD/CURRENT JSON Response:
{
  "appointmentDTO":
[
  {
     itemXYZ: 123, ...
   }
]
}


Proposed NEW/UPDATED JSON Response:
// no wrapping object around it, just return list
[
  {
     itemXYZ: 123, ...
   }
]

Reasoning: The wrapping "{  "appointmentDTO": ... }" should be dropped from
the json response body. "appointmentDTO" is generated but it is not in any
schema definition or method signature. Cause there is nothing in the method
signature that would tell anybody where " "appointmentDTO": [" is coming
from. Other than by testing the API call and finding out by try and error.

CXF-RS allows configuring our Web Service to NOT generate that wrapping
element. And turn this behaviour off and just generate the list.
See "dropRootName" in the CXF docs at:
https://cxf.apache.org/docs/jax-rs-data-bindings.html#JAXRSDataBindings-WrappingandUnwrappingJSONsequences

*This affects all methods returning a JSON response body (which is pretty
much every API Method)*

Please reply to this email if you have concerns, questions or objections.

Thanks!
Seb

Sebastian Wagner
Director Arrakeen Solutions, OM-Hosting.com
http://arrakeen-solutions.co.nz/
https://om-hosting.com - Cloud & Server Hosting for HTML5
Video-Conferencing OpenMeetings
<https://www.youracclaim.com/badges/da4e8828-743d-4968-af6f-49033f10d60a/public_url>
<https://www.youracclaim.com/badges/b7e709c6-aa87-4b02-9faf-099038475e36/public_url>

Reply via email to