[Engine-devel] REST API calls from the GUI

Michael Pasternak mpastern at redhat.com
Wed Feb 13 10:55:36 UTC 2013


Hi Libor,

This issue came across in one of the conversations i had with UX folks, but since we didn't end
up with any conclusion/road map (nor discussed it properly to hear other thoughts), this is a perfect
place to start this discussion,

Intuitively REST is a way to go with GWT AJAX calls
---------------------------------------------------

pros
====

- api data objects can be reused by generating java classes (using jaxb) from the rest schema [1]
- no backend logic will be duplicated as api abstracts the backend exposing RESTful collection/resources to operate on
- development against api is "easy" as api describes itself in RSDL [2]

cons
====

- implementing transport layer (HTTP) under GWT
- implementing own j2xml/json/yaml/... marshalling layer
- implementing own error handling mechanism
- implementing REST callback mechanism (in GWT)
- constant maintenance of the data objects generated from the api
- painful for Java developers

Java-SDK
--------

pros
====

- abstracts transport layer (leaving developer in standard Java api)
- typesafe code (no need to mess with XML bulks)
- has own data objects to work with
- abstracts authentication/authorization (kerberos/cookie/session/etc.)
- since SDK is auto-generated, it can be easily extended with required
  features to support UI (such as callback infrastructure for instance)

cons
====

- has to be converted in to Javascript (not sure what the impacts are in terms of AJAX calls/etc.)
- probably much more cons that we're not aware of and will have to figure out with POC


thoughts?

[1] http[s]://server[:port]/api?schema
[2] http[s]://server[:port]/api?rsdl

On 02/12/2013 06:13 PM, Libor Spevak wrote:
> Hi,
> 
> I would like to ask, if there have been discussions about an option to call REST API services directly from the Frontend (GWT layer)? GWT compiles Java frontend-side to
> Javascript, calls to backend services are performed "transparently" by the framework using AJAX support. But, there is still a need to have a special set of data objects
> and the server-side logic can duplicate.
> 
> Java REST API SDK enables to build "thick" client. The calls are realized using e.g. Apache HttClient and supported libraries. I think the requirements of GWT can be a
> little bit different, but something overlaps.
> 
> I found several links about REST API support from GWT, so there is something for inspiration...
> 
> - http://www.spiffyui.org/
> - http://www.zackgrossbart.com/hackito/gwt-rest/
> - http://code.google.com/p/gwt-rest/
> - http://restygwt.fusesource.org/
> 
> But, do you think it would be useful and what drawbacks can occur (authentication, authorization, response times, need to support larger set of services, painful
> refactoring, ...)?
> 
> Regards,
> Libor
> 
> _______________________________________________
> Engine-devel mailing list
> Engine-devel at ovirt.org
> http://lists.ovirt.org/mailman/listinfo/engine-devel


-- 

Michael Pasternak
RedHat, ENG-Virtualization R&D



More information about the Engine-devel mailing list