Ревью 2 теория. Инструкция по созданию бизнесобъектов. Strategy это поведенческий паттерн, выносит набор алгоритмов в собственные классы и делает их взаимозаменимыми
Скачать 0.74 Mb.
|
42. RestTemplate и его методы?RestTemplate – это специальный клиент в Spring для отправки http-запросов. Он предоставляет удобные API для легкого вызова конечных точек REST’а в одну строку. RestTemplate restTemplate = new RestTemplate(); String fooResourceUrl = "http://localhost:8080/spring-rest/foos"; ResponseEntity response = restTemplate.getForEntity(fooResourceUrl + "/1", String.class); RestTemplate определяет 36 методов для взаимодействия с ресурсами REST, большинство из которых соответствуют методам HTTP. На самом деле существует всего 11 независимых методов, десять из которых имеют три перегруженные формы, а одиннадцатый - шесть раз перегружен, так что всего формируется 36 методов. Основные методы: 1. getForEntity – выполняет запрос GET и возвращает объект ResponseEntity; 2. getForObject – аналогично getForEntity, но возвращает ресурс напрямую; 3. exchange – выполняет указанный метод HTTP, такой как GET, POST, PUT и т. д., и возвращает объект ResponseEntity; 4. execute – аналогичен exchange методу, но требует дополнительных параметров: RequestCallback и ResultSetExtractor; 5. headForHeaders – выполняет запрос HEAD и возвращает все заголовки; 6. optionsForAllow – выполняет запрос OPTIONS и использует заголовок Allow; 7. delete – удаляет ресурсы по указанному URL-адресу с помощью метода HTTP DELETE; 8. put – обновляет ресурс для заданного URL-адреса с помощью метода HTTP PUT; 9. postForObject – создает новый запрос с использованием метода HTTP POST и возвращает сущность; 10. postForLocation – создает новый запрос с использованием метода HTTP POST и возвращает его расположение. 43. HTTP протокол?HTTP (HyperText Transfer Protocol) – это протокол прикладного уровня передачи данных, изначально — в виде гипертекстовых документов в формате HTML, в настоящее время используется для передачи произвольных данных. Основные свойства: 1. Основой HTTP является технология «клиент-сервер», то есть предполагается существование: 1.1. Потребителей (клиентов), которые инициируют соединение и посылают запрос; 1.2. Поставщиков (серверов), которые ожидают соединения для получения запроса, производят необходимые действия и возвращают обратно сообщение с результатом. 2. HTTP используется также в качестве «транспорта» для других протоколов прикладного уровня, таких как SOAP, XML-RPC, WebDAV. 3. Основным объектом манипуляции в HTTP является ресурс, на который указывает URI (Uniform Resource Identifier) в запросе клиента. Обычно такими ресурсами являются хранящиеся на сервере файлы, но ими могут быть логические объекты или что-то абстрактное. Особенностью протокола HTTP является возможность указать в запросе и ответе способ представления одного и того же ресурса по различным параметрам: формату, кодировке, языку и т. д. (в частности, для этого используется HTTP-заголовок). Именно благодаря возможности указания способа кодирования сообщения клиент и сервер могут обмениваться двоичными данными, хотя данный протокол является текстовым. 4. HTTP — протокол прикладного уровня; аналогичными ему являются FTP и SMTP. Обмен сообщениями идет по обыкновенной схеме «запрос-ответ». Для идентификации ресурсов HTTP использует глобальные URI. В отличие от многих других протоколов, HTTP не сохраняет своего состояния. Это означает отсутствие сохранения промежуточного состояния между парами «запрос-ответ». Компоненты, использующие HTTP, могут самостоятельно осуществлять сохранение информации о состоянии, связанной с последними запросами и ответами (например, «куки» на стороне клиента, «сессии» на стороне сервера). Браузер, посылающий запросы, может отслеживать задержки ответов. Сервер может хранить IP-адреса и заголовки запросов последних клиентов. Однако сам протокол не осведомлен о предыдущих запросах и ответах, в нем не предусмотрена внутренняя поддержка состояния, к нему не предъявляются такие требования. 5. Большинство протоколов предусматривает установление TCP-сессии, в ходе которой один раз происходит авторизация, и дальнейшие действия выполняются в контексте этой авторизации. HTTP же устанавливает отдельную TCP-сессию на каждый запрос; в более поздних версиях HTTP было разрешено делать несколько запросов в ходе одной TCP-сессии, но браузеры обычно запрашивают только страницу и включенные в нее объекты (картинки, каскадные стили и т. п.), а затем сразу разрывают TCP-сессию. Для поддержки авторизованного (неанонимного) доступа в HTTP используются cookies; причем такой способ авторизации позволяет сохранить сессию даже после перезагрузки клиента и сервера. 6. HTTP позволяет клиенту прислать на сервер параметры, которые будут переданы запускаемому CGI-скрипту. Для этого же в HTML были введены формы. 7. При доступе к данным по FTP или по файловым протоколам тип файла (точнее, тип содержащихся в нем данных) определяется по расширению имени файла, что не всегда удобно. HTTP перед тем, как передать сами данные, передает заголовок «Content-Type: тип/подтип», позволяющий клиенту однозначно определить, каким образом обрабатывать присланные данные. Это особенно важно при работе с CGI-скриптами, когда расширение имени файла указывает не на тип присылаемых клиенту данных, а на необходимость запуска данного файла на сервере и отправки клиенту результатов работы программы, записанной в этом файле (при этом один и тот же файл в зависимости от аргументов запроса и своих собственных соображений может порождать ответы разных типов — в простейшем случае картинки в разных форматах). Программное обеспечение: Все программное обеспечение для работы с протоколом HTTP разделяется на три большие категории: 1. Серверы как основные поставщики услуг хранения и обработки информации (обработка запросов); 2. Клиенты — конечные потребители услуг сервера (отправка запроса); 3. Прокси (посредники) для выполнения транспортных служб. Для отличия конечных серверов от прокси в официальной документации используется термин «исходный сервер» (origin server). Один и тот же программный продукт может одновременно выполнять функции клиента, сервера или посредника в зависимости от поставленных задач. В спецификациях протокола HTTP подробно описывается поведение для каждой из этих ролей. |