Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Распределенные сервис-ориентированные системы..pdf
Скачиваний:
10
Добавлен:
05.02.2023
Размер:
9.2 Mб
Скачать

Рисунок 6.5 — Запись объекта Letter с id=1 в формате XML

Рисунок 6.6 — Запись объекта Letter с id=2 в формате XML

6.2.5 Добавление новой записи

Стиль программирования REST не обеспечивает прямой адресацией URL всех потребностей приложений.

Рассмотрим пример добавления новой записи к списку объектов типа Letter, который показывает ограниченность стиля прямой адресации объектов только с помощью одного URL.

Действительно, как уже сказано выше, для добавления новой записи следует использовать запрос типа POST, поэтому, согласно стилю программирования REST, обращение к RESTful-сервису необходимо выполнять по адресу: http://localhost:8080/lab9/letter. А как в таком случае передавать текст сообщения? Поэтому, хотим мы или не хотим, но необходимо использовать дополнительные параметры. На листинге 6.9 показан вариант такого решения.

259

Листинг 6.9 — Новый метод addLetter(...) сервлета LetsRestService

// Добавление новой записи /**

*Демонстрация метода POST, добавляющего одну запись, при

*обращении по адресу: http://localhost:8080/lab9/letter

*Должен использоваться один параметр типа String.

*/

@POST @Path("/letter")

@Produces(MediaType.TEXT_PLAIN)

public String addLetter(@FormParam("text") String text)

{

//Для добавления новую записи, ее нужно создать Letter let =

new Letter(new Date(), "vgr", text);

//Теперь, добавляем

lets.addLetter(let);

return "Добавлена новая запись\nПроверьте чтением списка записей!";

}

Обратите внимание, что поскольку запрос по методу POST выполняется из HTML-конструкции <FORM>, то для чтения переданного параметра text используется аннотация @FormParam(), указанная перед объявлением аргумента в методе addLetter(...). Сам текст ввода новой записи показан на рисунке 6.7.

Рисунок 6.7 — Окно браузер, добавляющего новую запись

260

После активации кнопки «Отправить», новая запись будет создана и подтверждена текстовым сообщением, показанным на рисунке 6.8.

Рисунок 6.8 — Сообщение, подтверждающее добавление новой записи

Заново прочитав весь список сообщений, как это показано на рисунке 6.9, мы можем убедиться, что новая запись — добавлена.

Рисунок 6.9 — Представление добавленой записи в формате XML

Этим примером мы завершаем тестирование RESTful-сервиса средствами клиентского агента в виде программы браузера. Хорошо видно, что возможности такого тестирования — весьма ограничены.

В следующем подразделе, рассмотрим инструментальные возможности, предоставляемые проектом JAX-RS для потребителей сервисов.

261