В предыдущей главе были рассмотрены веб-службы SOAP. Теперь вы уже должны понимать разницу между веб-службами, работающими на базе JAX-RS и JAX-WS. При работе REST широко задействуется HTTP, поэтому данная глава началась с общего знакомства с концепциями ресурсов, представления, адресуемости, связности, а также единообразных интерфейсов. Вы узнали, как с помощью простых HTTP-операций (GET, POST, PUT и др.) получать доступ к любому ресурсу, развернутому в Интернете.
Затем в этой главе был подробно рассмотрен протокол HTTP, работа которого строится на базе обмена запросами и ответами. По HTTP передаются сообщения, состоящие из заголовков, cookie и полезной нагрузки. С помощью HTTP-заголовков и согласования содержимого веб-службы в стиле REST могут выбирать из одного и того же URI подходящий тип содержимого. Можно использовать кэширование, помогающее оптимизировать сетевой трафик благодаря условным запросам (вспомните материал об использовании дат и меток ETag). Поскольку REST-службы построены на HTTP, такая оптимизация может применяться и с ними. Благодаря новому клиентскому API JAX-RS 2.0 мы смогли программно вызвать несколько веб-служб в стиле REST.
JAX-RS — это API языка Java, входящий в состав платформы Java EE 7 и упрощающий разработку веб-служб с передачей состояния представления. Работая с набором аннотаций, можно определить путь и подпути вашего ресурса, извлекать различные параметры или выполнять отображение на HTTP-методы (@GET, @POST и т. д.). При разработке веб-служб в стиле REST необходимо учитывать природу ресурсов, способы их связывания друг с другом, а также способы управления их состоянием с помощью HTTP. Теперь вы сами сумеете продемонстрировать в Сети несколько служб и посмотреть, на каких разнообразных устройствах можно будет их использовать.
Рис. 13.13. Собираем все воедино