It is broken. The problem is the fix will be a breaking change that will
require 3rd party integration code to be fixed. Not a big fix, but a fix.
Eg the Moodle Plugin requires some minor changes.

The workaround is to write some additional wrapper code to make it
backwards compatible. Which is also a bit confusing.

I also don't understand quite if you answer is pro or contra changing the
response.

So is your statement:
A) Yes, lets fix it to align our JSON response with what the schema/method
signature says. We don't like wrapper objects. And I am happy that people
have to change their integration code to use newer versions of OpenMeetings.
B) No, lets leave it like this for now and we do whatever other additional
code we need to write to workaround so that our documentation and schema
matches what the actual API responses look like

If you could please clarify if you are A, B. Or if you don't mind either
way/no strong opinion :)

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>


On Wed, 22 Sept 2021 at 10:59, Ali Alhaidary <ali.alhaid...@the5stars.org>
wrote:

> Hi,
>
> We have an old saying 'If it is not broken, do not fix it' ;-)
>
> Ali
> On 9/22/21 12:46 AM, seba.wag...@gmail.com wrote:
>
> 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