Ревью 2 теория. Инструкция по созданию бизнесобъектов. Strategy это поведенческий паттерн, выносит набор алгоритмов в собственные классы и делает их взаимозаменимыми
Скачать 0.74 Mb.
|
37.1. Расскажите о методах HTTP-запросов, поддерживаемых REST, и о том, когда они используются?REST API основаны на HTTP-запросах или командах, каждая из которых выполняет свою задачу. REST поддерживает следующие HTTP-запросы: 1. Метод GET – это запрос данных с сервера. 2. Метод POST – это отправление данных для создания нового ресурса по указанному сервером URL-адресу. 3. Метод PUT – это отправление данных для создания нового ресурса по указанному клиентом URL-адресу. 4. Метод DELETE – это удаление ресурса с сервера. 5. Метод OPTIONS – это возвращение методов запроса, поддерживаемых службой. 6. Метод HEAD – это возвращение метаинформации, такой как заголовки ответа. 7. Метод PATCH – это изменение части ресурса на сервере. 37.2. В чем разница между методами PUT и POST?PUT: 1. Идемпотент (т. е. несколько запросов дадут один и тот же результат). 2. Ответы PUT не кэшируются. 3. Обновляет или заменяет целевой ресурс полезной нагрузкой запроса. POST: 1. Не идемпотент (т. е. несколько запросов дадут несколько одинаковых результатов). 2. Ответы POST могут кэшироваться при условии правильного заголовка управления кешем. 3. Полезная нагрузка запроса обрабатывается веб-сервером на основе целевого ресурса. Понимание идемпотентности. Примером идемпотентной операции может быть операция умножения числа на единицу. Независимо от того, сколько раз производится умножение пять на один, получается один и тот же результат. 37.3. В чем разница между AJAX и REST?AJAX (Asynchronous Javascript and XML) – это ассинхронный подход к построению интерактивных пользовательских интерфейсов веб-приложений, заключающийся в «фоновом» обмене данными браузера с веб-сервером. В результате при обновлении данных веб-страница не перезагружается полностью, и веб-приложения становятся быстрее и удобнее. Клиент AJAX может сделать RESTful-запрос к REST API (например, запрос на получение), но AJAX не является архитектурным стилем. Это метод веб-разработки для клиентских приложений. Клиенты AJAX могут получить доступ к REST API, но они не реализованы с помощью AJAX. AJAX – технология обращения к серверу без перезагрузки страницы. 37.4. В чем разница между SOAP и REST?Хотя некоторые REST API используют протоколы SOAP, REST и SOAP — это совершенно разные подходы к созданию API. Интервьюеры могут задать этот вопрос, чтобы оценить глубину вашего понимания. SOAP: 1. Протокол; 2.Формат данных ограничен; 3. XML; 4. Тяжелый и требует большей пропускной способности; 5. Звонки не могут кэшироваться. REST: 1. Архитектурный стиль; 2. Позволяет использовать различные форматы данных, включая обычный текст, HTML, XML, JSON и YAML; 3. Легкий и требует меньше пропускной способности; 4. Звонки могут кэшироваться; 5. Объясните коды состояния ответа HTTP. 38. Форматы данных использующиеся в REST-сервисах?Архитектура REST позволяет поставщикам API доставлять данные в различных форматах, таких как: простой текст, HTML, XML, YAML и JSON. Задавать то в каком виде будут возвращаться форматы на клиент можно несколькими способами. На самом деле в REST считается что один и тот же ресурс, может быть, в нескольких представлениях. Например, один и тот же запрос, а один и тот же URI может возвращать данные в разных форматах. Например, GET запрос на URI http://myadressbook.com/contacts/25 /может вернуть нам XML, JSON, vCard или, например изображение. Чаще всего управляют тем какие данные возвращаются с помощью HTTP Header - Accept. В качестве параметров для Accept заголовка используется один из MIME типов либо свой кастомный MIME тип (Multipurpose Internet Mail Extensions - многоцелевые расширения интернет-почты). Иногда тип возвращаемых данных задают посредством URI, например: http://myadressbook.com/contacts/25?return=json http://myadressbook.com/contacts/25.json Данные, которые идут в сообщении на сервер тоже могут быть разных форматов и сервер вполне себе их может понимать. Аналогично формат данных, которые идут на сервер задается заголовком Content-Type. |