I'm +1 for the change :)
=> OK

right now we have `JSON.stringify` [1] in some places, and NOT in some
others. I would completely get rid of it :(
=> You mean from the request parameter or response parameters ?

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 17:19, Maxim Solodovnik <solomax...@gmail.com>
wrote:

> I'm +1 for the change :)
>
> And I propose to check the current REST API to be clearer
> for ex. right now we have `JSON.stringify` [1] in some places, and NOT in
> some others
> I would completely get rid of it :(
>
> this particular change is small and will affect 1-2 lines of code in
> Moodle plugin :)
>
> [1] https://openmeetings.apache.org/RestAPISample.html
>
> On Wed, 22 Sept 2021 at 06:11, seba.wag...@gmail.com <
> seba.wag...@gmail.com> wrote:
>
>> 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>
>>>
>>>
>
> --
> Best regards,
> Maxim
>

Reply via email to