Лекция 10 - Web Services & Тестирование API

Содержание

Слайд 2

Web Services

Web Services

Слайд 3

Web сервисы

Web-сервис (служба) – программа, которая организовывает взаимодействие между сайтами. Информация с

Web сервисы Web-сервис (служба) – программа, которая организовывает взаимодействие между сайтами. Информация
одного портала передается на другой.

Слайд 4

Web сервисы

Например, есть авиакомпания. У нее много рейсов, соответственно, много билетов. Информацию

Web сервисы Например, есть авиакомпания. У нее много рейсов, соответственно, много билетов.
через веб-службу она передает сайту-агрегатору тур-путешествий. Пользователь, который заходит на агрегатор, сможет прямо там купить билеты этой авиакомпании.

Слайд 5

Web сервисы

Другой пример веб-сервисов — это сайт отслеживания погоды, который содержит сведения

Web сервисы Другой пример веб-сервисов — это сайт отслеживания погоды, который содержит
о метеоусловиях в конкретном городе или по стране в целом. Данная информация также часто используется сторонними приложениями.

Слайд 6

Web сервисы

Информация в интернете разнородна. Сайты управляются разными системами. используются разные протоколы

Web сервисы Информация в интернете разнородна. Сайты управляются разными системами. используются разные
передачи и шифрования. Веб-сервисы упрощают обмен информацией между разными площадками.

Слайд 7

Архитектура и протоколы Web-сервисов

На сегодняшний день наибольшее распространение получили следующие протоколы реализации

Архитектура и протоколы Web-сервисов На сегодняшний день наибольшее распространение получили следующие протоколы
веб-сервисов:
SOAP (Simple Object Access Protocol)
REST (Representational State Transfer)

Слайд 8

Архитектура и протоколы Web-сервисов

Архитектура и протоколы Web-сервисов

Слайд 9

Архитектура и протоколы Web-сервисов

SOAP более применим в сложных архитектурах, где взаимодействие с

Архитектура и протоколы Web-сервисов SOAP более применим в сложных архитектурах, где взаимодействие
объектами выходит за рамки теории CRUD, а вот в тех приложениях, которые не покидают рамки данной теории, вполне применимым может оказаться именно REST ввиду своей простоты и прозрачности.

Слайд 10

Архитектура и протоколы Web-сервисов

Если любым объектам вашего сервиса не нужны более сложные

Архитектура и протоколы Web-сервисов Если любым объектам вашего сервиса не нужны более
взаимоотношения, кроме: «Создать», «Прочитать», «Изменить», «Удалить» (как правило — в 99% случаев этого достаточно), возможно, именно REST станет правильным выбором.
Кроме того, REST по сравнению с SOAP, может оказаться и более производительным, так как не требует затрат на разбор сложных XML команд на сервере (выполняются обычные HTTP запросы — PUT, GET, POST, DELETE). Хотя SOAP, в свою очередь, более надежен и безопасен.

Слайд 11

Архитектура и протоколы Web-сервисов

Важно понимать, что REST – это не протокол и

Архитектура и протоколы Web-сервисов Важно понимать, что REST – это не протокол
не стандарт, а архитектурный стиль. У этого стиля есть свои принципы.
Give every “thing” an ID.
Очень желательно.
Link things together.
Например, в страницу (представление) о Mercedes C218 хорошо бы добавить ссылку на страницу конкретно о двигателе данной модели, чтобы желающие могли сразу туда перейти, а не тратить время на поиск этой самой страницы.

Слайд 12

Архитектура и протоколы Web-сервисов

3. Use standard methods.
Имеется в виду, экономьте свои силы

Архитектура и протоколы Web-сервисов 3. Use standard methods. Имеется в виду, экономьте
и деньги заказчика, используйте стандартные методы HTTP, например GET
http://www.example.com/cars/00345
для получения данных вместо определения собственных методов вроде getCar?id=00345.
4. Resources can have multiple representations.
Одни и те же данные можно вернуть в XML или JSON для программной обработки или обернутыми в красивый дизайн для просмотра человеком.

Слайд 13

Архитектура и протоколы Web-сервисов
5. Communicate statelessly.
Да, RESTful сервис должен быть как идеальный

Архитектура и протоколы Web-сервисов 5. Communicate statelessly. Да, RESTful сервис должен быть
суд – его не должно интересовать ни прошлое подсудимого (клиента), ни будущее – он просто выносит приговор (отвечает на запрос).
RESTful (веб-)сервис всего лишь означает сервис, реализованный с использованием принципов REST

Слайд 14

Сравнение подходов SOAP и REST

1. SOAP – это целое семейство протоколов и

Сравнение подходов SOAP и REST 1. SOAP – это целое семейство протоколов
стандартов, откуда напрямую вытекает, что это более тяжеловесный и сложный вариант с точки зрения машинной обработки. Поэтому REST работает быстрее.
2. SOAP используют HTTP как транспортный протокол, в то время как REST базируется на нем.
3. Есть мнение, что разработка RESTful сервисов намного проще.
4. SOAP - только XML, REST - любые типы данных, например удобный JSON
5. «REST vs SOAP» можно перефразировать в «Простота vs Стандарты»
6. SOAP не кэшируется на сервере (так как использует HTTP как транспортный протокол)

Слайд 15

Архитектура и протоколы Web-сервисов

Приведу пару примеров на понимание разницы между подходами.
Букмекерская контора

Архитектура и протоколы Web-сервисов Приведу пару примеров на понимание разницы между подходами.
заказала сервис для работы с футбольной статистикой. Пользовательский функционал – получить список матчей, получить детали о матче. Для редакторов – редактировать (Create, Edit, Delete) список матчей, редактировать детали матча.
Для такой задачи однозначно надо выбирать подход REST и получать бенефиты от его простоты и естественности во взаимодействии с HTTP.

Слайд 16

Архитектура и протоколы Web-сервисов

Все очень просто! Теперь пример посложнее.
Та же букмекерская

Архитектура и протоколы Web-сервисов Все очень просто! Теперь пример посложнее. Та же
контора захотела API для ставок на live матчи. Эта процедура включает в себя многочисленные проверки, например, продолжает ли ставка быть актуальной, не изменился ли коэффициент, не превышена ли максимальная сумма ставки для маркета. После этого происходит денежная транзакция, результаты которой записываются в основную и в резервные базы данных. Лишь после этого клиенту приходит ответ об успешности операции.
Здесь явно прослеживается ориентация на операции, имеются повышенные требования к безопасности и устойчивости приложения, поэтому целесообразно использовать SOAP.

Слайд 17

XML & JSON

JSON (англ. JavaScript Object Notation) — формат обмена данными, легко

XML & JSON JSON (англ. JavaScript Object Notation) — формат обмена данными,
читаем людьми, легко обрабатывается и генерируется программами. Основан на подмножестве языка JavaScript.
XML (eXtensible Markup Language) — расширяемый язык разметки.

Слайд 18

XML & JSON
Преимущества JSON:
Удобочитаемость кода.
Простота создания объекта данных на стороне сервера.
Простота обработки

XML & JSON Преимущества JSON: Удобочитаемость кода. Простота создания объекта данных на
данных на стороне клиента.
Простота расширения.
Преимущества XML:
Отладка и исправление ошибок.
Безопасность.

Слайд 19

XML & JSON

Удобочитаемость кода.
XML
Subbu
Allamaraju

JSON
({ "firstName" : "Subbu",

XML & JSON Удобочитаемость кода. XML Subbu Allamaraju JSON ({ "firstName" :
"lastName" : "Allamaraju"
});

Слайд 20

Задачи веб-сервисов

Веб-сервисы могут использоваться во многих сферах.

Задачи веб-сервисов Веб-сервисы могут использоваться во многих сферах.

Слайд 21

Задачи веб-сервисов

B2B-транзакции
Интеграция процессов идет сразу, без участия людей.
Например, пополнение каталога интернет-магазина

Задачи веб-сервисов B2B-транзакции Интеграция процессов идет сразу, без участия людей. Например, пополнение
новыми товарами. Их привозят на склад, и кладовщик отмечает в базе данных приход. Автоматически информация передается в интернет-магазин. И покупатель вместо пометки “Нет на складе” на карточке товара видит его количество.

Слайд 22

Задачи веб-сервисов

Интеграция сервисов предприятий
Если в компании используются корпоративные программы, то веб-сервис поможет

Задачи веб-сервисов Интеграция сервисов предприятий Если в компании используются корпоративные программы, то
настроить их совместную работу.

Слайд 23

Задачи веб-сервисов

Создание системы клиент-сервер
Сервисы используются, чтобы настроить работу клиента и сервера. Это

Задачи веб-сервисов Создание системы клиент-сервер Сервисы используются, чтобы настроить работу клиента и
дает преимущества:
можно продавать не само программное обеспечение, а делать платным доступ к веб-сервису;
легче решать проблемы с использованием стороннего ПО;
проще организовывать доступ к контенту и материалам сервера.
Веб-сервис — это приложение, которое упрощает техническую настройку взаимодействия ресурсов.

Слайд 24

Swagger

Swagger — это набор инструментов, которые помогают описывать API. Благодаря ему пользователи

Swagger Swagger — это набор инструментов, которые помогают описывать API. Благодаря ему
и машины лучше понимают возможности REST API без доступа к коду. С помощью Swagger можно быстро создать документацию и отправить ее другим разработчикам или клиентам.

Слайд 25

Основные подходы

Swagger предлагает два основных подхода к генерированию документации:
Автогенерация на основе кода. 
Самостоятельная

Основные подходы Swagger предлагает два основных подхода к генерированию документации: Автогенерация на основе кода. Самостоятельная разметка-написание.
разметка-написание.

Слайд 26

Swagger

Первый подход проще. Мы добавляем зависимости в проект, конфигурируем настройки и

Swagger Первый подход проще. Мы добавляем зависимости в проект, конфигурируем настройки и
получаем документацию. Сам код из-за этого может стать менее читабельным, документация тоже не будет идеальной. Но задача минимум решена — код задокументирован.
Чтобы пользоваться вторым подходом, нужно знать синтаксис Swagger. Описания можно готовить в формате YAML/JSON. Можно упростить эту задачу, используя Swagger Editor. Конечно, второй подход позволяет сделать документацию более качественной и кастомной для каждого конкретного проекта и его особенностей, к тому же все не так сложно как может показаться, это потребует минимальных дополнительных усилий.

Слайд 27

Curl

Что такое Curl ? Curl — это сокращение от “Client URL”.

Curl Что такое Curl ? Curl — это сокращение от “Client URL”.
Утилита доступна в большинстве систем на основе Unix и предназначена для проверки подключения к URL-адресам. Кроме того команда Curl — отличный инструмент передачи данных.  
HTTP и HTTPS
FTP и FTPS
IMAP и IMAPS
POP3 и POP3S
SMB и SMBS и другие
Имя файла: Лекция-10---Web-Services-&-Тестирование-API.pptx
Количество просмотров: 53
Количество скачиваний: 1