Про API для начинающих тестировщиков. Разница между REST и SOAP. 2022
Что такое API? Коротко расскажу основное для начинающих, что необходимо знать или хотя бы просто услышать разок, но без зубрежки.
15 показов
1.7K открытий
Поставь лайк статье❣
Что вы узнаете:
- Что такое API?
- Где можно увидеть пример API?
- Как работает API?
- Какая разница между REST и SOAP?
API – это контракт, который предоставляет программа. То есть присутствует определенная функция/скрипт, где прописаны способы/условия взаимодействия между клиентом и сервером.
Например, одна система дергает через API какой-то метод другой системы. Она может получить данные из другой системы или наоборот, отправить данные в эту систему.
По сути всё, что мы делаем в UI(интерфейс пользователя), даже простое открытие сайта или выбор значений в полях, можно делать и через API, соответственно тестировать.
Ниже прикрепил простой пример кода для работы с сервером.
Пример из моего кода. Смотрите на команду fetch.
API включает в себя:
- Операция
- Данные на входе
- Данные на выходе
Где можно увидеть пример API? Элементарно. Откройте консоль разработчика(F12) и найдите любой запрос в Network. А! Ну все! Вы видите ранее невидимый вам API. Далее зайдите в ответы и запросы. Тут вы увидите обычно формат json, а это уже тема способа работы API, например REST API и SOAP API.
Как работает API?
Вы кликаете на кнопку в одном приложении с точки зрения клиента, где далее идет запрос на сервер, откуда пойдёт вам ответ. Обычно так можно объяснить работу архитектуры API.
Существует несколько способов работы API, например:
REST – это архитектурный стиль взаимодействия компонентов приложения в сети, также это особый тип Web API. Архитектурный стиль – это набор ограничений и принципов проектирования свойств системы, которые необходимы для лучшего масштабирования и интеграции с другими сервисами.
Модель REST API
SOAP – это протокол, по которому взаимодействуют веб-сервисы между друг другом или с клиентом.
Websocket API – это одна из разработок web API, которая позволяет открыть постоянное двунаправленное сетевое соединение между клиентом и сервером. Использует JSON для передачи данных.
Пример типов сообщений:
- Subscribe (подписка на топик)
- Unsubscribe (отписка на топик)
- Message (получение сообщений)
- Oauth.logheartbit (контроль статуса соединения)
В тестировании удобная штука, которая дает понимание общения между GUI и сервером. Если нет Websocket, то возможно есть проблемы, которые нужно сообщить бэкенд разработчику.
Пример websocket в консоле
RPC API – система удаленного вызова процедур. Клиент совершает функцию на сервере, и сервер отправляет обратно результат.
Какая разница между SOAP и REST?
Клиент-серверная архитектура приложения
В SOAP и REST передача данных идет также, то есть по HTTP протоколу. Но все же SOAP это просто протокол. То картинка будет иной.
Клиент и сервер SOAP
Клиент и сервер общаются через протокол HTTP, но по нему отправляется не стандартное сообщение, а именно написаное по правилам протокола SOAP.
Основное отличие, наверное, это то, что REST в основном общается(response/request в запросах) или обменивается сообщениями через JSON, XML или другой формат(нету фиксированного формата обмена сообщений), а SOAP через XML(это фиксированный формат).
REST сейчас топ по-популярности, чем SOAP. Также он более дешёвый, простой в использовании и поддержке.
В этой статье мы рассмотрели API и поняли ее аспекты, также узнали про некоторую разницу между REST и SOAP.
Также рекомендую изучить для полной картины данную статью:
Всё, что нужно знать о REST и SOAP: гайд для тестировщика
Всем привет! Меня зовут Дархан, я QA-инженер компании Creative. Сегодня подробно расскажу об архитектурном стиле REST и формате обмена сообщениями SOAP, в которых нужно шарить любому тестировщику. Статья оформлена в виде простого и понятного гайда – разберём теорию, немного углубимся в детали, а в конце потестим наши запросы на сайте-песочнице. Будет интересно, поэтому давайте начинать. На все вопросы отвечу в конце статьи и, если нужно, разберу ваши кейсы. Погнали!
Базовые понятия о SOAP
SOAP – это протокол обмена сообщениями, который позволяет распределённым элементам приложения обмениваться данными. SOAP может передаваться по множеству стандартных протоколов, он гибкий и независимый. Это позволяет разработчикам писать API на разных языках, а ещё добавлять различные функции и функциональные возможности.
Подход SOAP определяет, как будут обрабатываться сообщения, включенные функции и модули, поддерживаемые протоколы связи.
Информационный набор Extensible Markup Language (XML) используется для SOAP в качестве формата сообщений, а передача и их согласование происходит с помощью протоколов прикладного уровня – таких, как HTTP.
Фишки SOAP
- SOAP обладает высокой расширяемостью, но используется только те фрагменты, которые нужны для конкретной задачи.
- Частью волшебства является язык описания веб-служб (WSDL) – ещё один файл, связанный с SOAP. Он показывает, как работает веб-служба, поэтому при создании ссылки на нее среда IDE может полностью автоматизировать процесс.
- SOAP работает с XML, а другим языкам предоставляет ярлыки, которые могут ускорить и облегчить процесс создания запроса и анализа ответа.
- SOAP не терпит ошибок. И это не прикол! В некоторых языках программирования запросы и получение ответов в SOAP нужно будет создавать вручную, поэтому keep calm, please! Сложность зависит от языка программирования.
Знакомимся с REST
RESTful API – это архитектурный стиль интерфейса прикладных программ (API), который использует HTTP-запросы для доступа и использования данных. Их можно использовать для GET, PUT, POST и DELETE, которые относятся к чтению, обновлению, созданию и удалению операций с ресурсами.
Как это работает?
RESTful API разбивает транзакцию на серию небольших модулей. Каждый модуль обращается к базовой части транзакции. Эта модульность предоставляет разработчикам большую гибкость, но вот разработать свой REST API с нуля порой бывает сложно.
Пользоваться можно уже готовыми моделями, самыми популярными сейчас стали Amazon S3, Cloud Data Management Interface (CDMI) и OpenStack Swift.
RESTful API использует команды для получения ресурсов. Состояние ресурса в любой момент времени называется представлением ресурса. RESTful API использует существующие методологии HTTP, определенные протоколом RFC 2616, такие как:
- GET для получения ресурса.
- PUT для изменения состояния или обновления ресурса, который может быть объектом, файлом или блоком.
- POST для создания этого ресурса.
- DELETE, чтобы удалить его.
В REST сетевые компоненты представляют собой ресурс, к которому пользователь запрашивает доступ, подобно чёрному ящику, детали реализации которого неясны. Все вызовы не имеют состояния; служба RESTful ничего не может сохранить между выполнениями.
Какие форматы данных поддерживает REST API:
- приложение/json.
- приложение/xml.
- приложение/x-wbe+xml.
- приложение/x-www-форма-urlencoded.
- multipart/form-data.
REST или SOAP
REST и простой протокол доступа к объектам (SOAP) предлагают разные методы вызова веб-службы. И если REST – это, как мы уже разобрали, архитектурный стиль, то SOAP определяет стандартную спецификацию протокола связи для обмена сообщениями на основе XML. Приложения REST могут использовать SOAP.
Веб-службы RESTful не имеют состояния. Реализация на основе REST проста по сравнению с SOAP, но пользователи должны понимать контекст и передаваемое содержимое, поскольку не существует стандартного набора правил для описания интерфейса веб-служб REST.
Службы REST полезны для устройств с ограниченным профилем (таких, как мобильные) и их легко интегрировать с существующими веб-сайтами.
Для SOAP требуется меньше кода (низкоуровневого инфраструктурного кода, который соединяет основные модули кода вместе), чем для проектирования служб REST. Язык описания веб-служб описывает общий набор правил для определения сообщений, привязок, операций и местоположения службы. Веб-службы SOAP полезны для асинхронной обработки и вызова.
А теперь давайте наконец-то потестим наши SOAP и REST запросы.
Тесты методом SOAP
Открываем сайт-песочницу, волшебство будет происходить тут.
Далее нужно зарегистрироваться. Качаем SOAP UI для генерации запросов XML здесь.
Затем создаём SOAP проект (илл.1, 2):
При подготовке материала использовались источники:
https://vc.ru/u/1263669-vasiliy-volgin/561777-pro-api-dlya-nachinayushchih-testirovshchikov-raznica-mezhdu-rest-i-soap-2022
https://vc.ru/dev/563668-vse-chto-nuzhno-znat-o-rest-i-soap-gayd-dlya-testirovshchika