Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java EE (J2EE) и Spring > Нужна помощь по REST


Автор: lazycat 9.2.2011, 13:38
Доброго времени суток всем.

Вопрос чайный, т.к. только начал знакомиться с REST, но сразу же зашел в тупик. Во всех статьях описание идет по примерно одинаковой схеме, например, 

Цитата


... для HTTP действие над данными задается с помощью методов: GET, PUT, POST, DELETE ...

Вот как это будет выглядеть на примере:

GET /book/ — получить список всех книг
GET /book/3/ — получить книгу номер 3
...



Если направить запрос GET /book/3/ на обычный Web-сервер, он будет искать файл /book/3/index.html,  следовательно нужно нечто вроде "REST-aware" контейнера. Однако об этом в литературе ни слова. Может быть мне неудачные источники попадаются.

Буду благодарен за любую ссылку, где не только рассуждают о REST-запросе, но и рассказывают о том, какие средства нужны на серверной стороне, как они реализуются, какие есть библиотеки и т.д.

Для модератора: Прошу прощения, если неправильно выбрал раздел. Долго думал, где создать тему, здесь или в J2EE, решил создать в обоих разделах.


Автор: LLIbIcpEP 9.2.2011, 13:47
Если путь в запросе оканчивается слешем, сервер подставит индексный файл, а индексный файл задается в конфигах всех известных веб-серверов. Может писать без слеша?
GET /book — получить список всех книг
GET /book/3 — получить книгу номер 3
В любом случае от сервера зависит. Если сервер ваш, то например для сервлетов в web.xml можно задать, какой наследник HttpServlet какой алиас будет слушать. Примерно так:
Код

    <servlet>
        <servlet-name>My Test Gateway Servlet</servlet-name>
        <servlet-class>my.api.TestGateway</servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>My Test Gateway Servlet</servlet-name>
        <url-pattern>/test-api</url-pattern>
    </servlet-mapping>

Получается, мой класс TestGateway будет обрабатывать запросы по http://localhost:8080/my/test-api.
А можно задать и индексный файл:
Код

    <welcome-file-list>
     <welcome-file>index.html</welcome-file>
    </welcome-file-list>

Автор: lazycat 9.2.2011, 15:15
Получается, что за создание серверной части полностью отвечаю я? Нет ни библиотеки ни фреймворка никакой другой "руководящей и направляющей" силы?

Автор: LLIbIcpEP 9.2.2011, 15:25
Tomcat или Jetty в качестве контейнера, плюс технология Servlet - вполне хватает) Если нужно еще и браузерные странички, а не просто АПИ - JSP/JSF.
Да и в качестве протокола REST как-то... Надо посмотреть в сторону, например, JSON.

Автор: Evgin 9.2.2011, 15:45
Выбирайте:
 - Axis2
 - CXF
 - restlet

Отдаю предпочтение restlet, достаточно просто =)

Автор: powerOn 11.2.2011, 11:39
Еще можно глянуть: http://refcardz.dzone.com/refcardz/rest-foundations-restful
Потом: 
http://forum.vingrad.ru/forum/topic-242617/kw-restful-jax--maven-jersey.html
http://forum.vingrad.ru/forum/topic-242699/kw-restful-jax--jersey-webservices.html
http://forum.vingrad.ru/forum/topic-242702/kw-restful-jax--jersey-webservices.html


Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)