Api

Implementation of the api.rest module.

This module is responsible for automatically publish REST endpoints for initialized IApplications.

To do so, the module reads core.api annotations such as @ListsResources, @AddsResource, @RemovesResource and uses a common pattern to publish those methods.
FIXME: Other methods are published as GET methods by now

As part of the REST endpoint publication, the API module translates IResources into their identifiers, so only those ids are exposed in the API.

The module also provides serializers/deserializers for common java collections such as List and Map.
These serializers use some specific annotations:
- @ContentType defines the type of objects in a collection
- @KeyContentType: defines the type of objects used as keys in a Map.