Реализация RESTlet в существующем приложении Java EE - PullRequest
0 голосов
/ 12 марта 2012

Как я могу реализовать платформу Restlet с моим приложением Java EE?

Я уже попробовал свои силы с помощью Restful Webservice Spring, но не уверен, как начать работу с платформой Restlet.

Это лучший вариант, чем реализация RESTful в Spring MVC?Каковы плюсы и минусы этих двух структур.

1 Ответ

1 голос
/ 13 марта 2012

Сила 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>

Надеюсь, это поможет вам и даст лучший обзор структуры.

...