On Wed, 22 Sept 2021 at 12:37, seba.wag...@gmail.com <seba.wag...@gmail.com> wrote:
> 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 ? > it's in request this was the only way I found to pass more than one JSON object as a parameter ... :( (ugly but works) as far as I remember is was most unclear thing in our API Maybe you can point to some others :) > > 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 >> > -- Best regards, Maxim