| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Java EE (J2EE) и Spring > RESTful веб-сервисы: Обработка HTTP запросов. |
| Автор: powerOn 5.1.2009, 20:44 | ||||||||
| Обработка HTTP запросов с помощью RESTful веб-сервисов. В первой статье (http://forum.vingrad.ru/forum/index.php?show_type=forum&showtopic=242617&kw=restful-jax--maven-jersey) был проведен небольшой обзор RESTful веб-сервисов, а так же показан пример создания простого сервиса с помощью стека Jersey и Maven2. В данной статье мы коснемся вопросов обработки HTTP запросов. Аннотации и обработчики Обработка основных HTTP запросов с помощью RESTful сервисов делается необычайно просто: достаточно создать метод и пометить его соответствующей аннотацией (которые называются как "resource method designator" (указатель на метод ресурса)). Jersey поддерживает следующие аннотации для назначения обработчиков http запроса:
Использование @GET и @POST
Осуществить запрос к данному сервису можно используя методы GET и POST. В первом случае URL будет выглядеть как:
А во втором, для POST запроса, так:
Следует отметить, что для успешной обработки MIME тип у POST запроса должен быть text/plain, иначе сервер вернет ошибку HTTP Status 415. Контент запроса будет передан в метод в качестве параметра. так же обратите внимание на используемый в коде объект класса UriInfo. Он автоматически инжектируется окружением и служит для получения информации об URI, по которому происходит обработка запроса. Использование @HEAD HEAD запрос так же можно обрабатывать с помощью RESTful сервиса. Но его обработчики не так часто используются как для GET и POST. Обычно HEAD запрос применяется для извлечения метаданных или проверки наличия ресурса, при этом клиенту отправляется только заголовок ответа (без его тела). Интересным фактом, является то, что если явно не создавать метод обработчик c аннотацией @HEAD, то будет использоваться обработчик @GET запроса, но в ответ будет отправлен только заголовок – тело будет проигнорировано.
На этом всё. Получить информацию об остальных обработчиках можно обратившись к официальной документации по JAX-RS (JSR-311). Ссылки на ресурсы используемые при написании статьи: https://jersey.dev.java.net/ - домашняя страница проекта Jersey. http://java.sun.com/developer/technicalArticles/WebServices/restful/ - обзор RESTful веб-сервисов на java.sun.com. http://jcp.org/en/jsr/detail?id=311 - спецификация JAX-RS 1.0. http://docs.sun.com/app/docs/doc/820-4867/6nga7f5mk?l=ru&a=view - руководство разработчика. |
| Автор: Foror 6.1.2009, 08:56 | ||
Вот это сомнительные команды. Думаю @POST и @GET более чем достаточно. На хабре, кстати, было обсуждение на эту тему. |
| Автор: powerOn 6.1.2009, 14:01 |
| Тут подход такой: в REST стиле HTTP методы отлично мапятся на СRUD методы, который типично реализуются в remote facade. Т.е. Create - POST. Read - GET. Update - PUT. Delete - DELETE. Реализуя методы таким образом, легко ориентироваться в обработчиках операций. |