Сила Restlet заключается в том, что он предоставляет полный API для REST, гибкость при использовании принципов REST, а также учитывает как стороны клиента, так и сервера.
Еще один аспект, который вы можете рассмотреть, заключается в том, что Restlet является полным промежуточным ПО RESTful, позволяющимсоединение различных и разнородных систем с использованием архитектуры REST.Фактически, Restlet может выполняться в нескольких средах (Java, Java EE, Android, GWT, Google App Engine) и облачных платформах (EC2, GAE, Azure) с одним и тем же API для предоставления приложений RESTful.Он внутренне учитывает особенности и ограничения каждой среды.Он также позволяет получать доступ к различным типам служб REST (например, OData, S3 ...), интегрировать защиту различных систем (AWS, Google ...) и обеспечивать поддержку технологии SDC Google (безопасный доступ к ресурсам интрасети)..
Теперь давайте введем код.Наилучшим подходом для реализации приложения Restlet в JavaEE является использование расширения сервлета, которое играет роль фронт-контроллера для этого приложения.Затем вы можете определить свои сущности (Application, ServerResource) как обычно.Вам необходимо создать следующие вещи:
Приложение перезапуска (подкласс Application):
public class ContactApplication extends Application {
public Restlet createInboundRoot() {
Router router = new Router(getContext());
router.attach("/contact/{id}",
SimpleContactServerResource.class);
return router;
}
}
Один или несколько ресурсов сервера:
public class SimpleContactServerResource
extends ServerResource {
private ContactService contactService = (...)
@Get
public Representation getContact(Variant variant) {
Map<String, Object> attributes
= getRequest().getAttributes();
String contactId = (String) attributes.get("id");
Contact contact = contactService.getContact(contactId);
return new JacksonRepresentation<Contact>(contact);
}
(...)
}
Конфигурирует сервлет Restlet:
<web-app>
<context-param>
<param-name>org.restlet.application</param-name>
<param-value>org.restlet.gtug.gae.ContactsApplication</param-value>
</context-param>
<servlet>
<servlet-name>ServerServlet</servlet-name>
<servlet-class>org.restlet.ext.servlet.ServerServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>ServerServlet</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
</web-app>
Надеюсь, это поможет вам и даст лучший обзор структуры.