Skip to content

Module: Rest

Denis Arrivault edited this page Mar 22, 2017 · 9 revisions

REST (Representational State Transfer) is an architecture style based on HTTPS. It uses HTTPS verbs (GET, POST, PUT, DELETE, etc.) to interact with the client.

Role

See also CommandLine.

The rest module starts up a RestServer that listens to the requests of the client html5-based GUI.

It passes them on to the methods of some other module, provided that they are annotated in the right way. By default this is the controller module. Each request is then linked to a controller method depending on its HTTPS verb and uri.

Currently, the rest module uses Jetty as a rest server implementation and javax.ws.rs as a restfull interface.

Main classes

  • rest.impl.JettyRestServer is the implementation of the rest.api.RestServer interface. Its instanciation is done directly by the application. The initialization is done on the controller module. A servlet is then associated with each class of this module that contains a @ServletPath annotation (i.e. controller.Items, controller.Users and controller.Search). The methods of thoses classes are called by the rest server according to its HTTPS verb and path annotation.

  • rest.impl.SimpleAuthentifier is the implementation of the rest.api.Authentifier interface. A restful interface does not save any data between two requests. That is the reason why one needs to instantiate a user authentifier at the application level. The authentification is done by a unique random token associated with the user id and its password.

More

http://www.eclipse.org/jetty/

Clone this wiki locally