{"id":14279,"url":"\/distributions\/14279\/click?bit=1&hash=4408d97a995353c62a7353088166cda4ded361bf29df096e086ea0bbb9c1b2fc","title":"\u0427\u0442\u043e \u0432\u044b\u0431\u0435\u0440\u0435\u0442\u0435: \u0432\u044b\u0435\u0445\u0430\u0442\u044c \u043f\u043e\u0437\u0436\u0435 \u0438\u043b\u0438 \u0437\u0430\u0435\u0445\u0430\u0442\u044c \u0440\u0430\u043d\u044c\u0448\u0435?","buttonText":"","imageUuid":""}

Про API для начинающих тестировщиков. Разница между REST и SOAP. 2022

Что такое API? Коротко расскажу основное для начинающих, что необходимо знать или хотя бы просто услышать разок, но без зубрежки.

Поставь лайк статье

Что вы узнаете:

  • Что такое API?
  • Где можно увидеть пример API?
  • Как работает API?
  • Какая разница между REST и SOAP?

API - это контракт, который предоставляет программа. То есть присутствует определенная функция/скрипт, где прописаны способы/условия взаимодействия между клиентом и сервером.

Например, одна система дергает через API какой-то метод другой системы. Она может получить данные из другой системы или наоборот, отправить данные в эту систему.

По сути всё, что мы делаем в UI(интерфейс пользователя), даже простое открытие сайта или выбор значений в полях, можно делать и через API, соответственно тестировать.

Ниже прикрепил простой пример кода для работы с сервером.

Пример из моего кода. Смотрите на команду fetch.

API включает в себя:

  1. Операция
  2. Данные на входе
  3. Данные на выходе

Где можно увидеть пример API? Элементарно. Откройте консоль разработчика(F12) и найдите любой запрос в Network. А! Ну все! Вы видите ранее невидимый вам API. Далее зайдите в ответы и запросы. Тут вы увидите обычно формат json, а это уже тема способа работы API, например REST API и SOAP API.

Как работает API?

Вы кликаете на кнопку в одном приложении с точки зрения клиента, где далее идет запрос на сервер, откуда пойдёт вам ответ. Обычно так можно объяснить работу архитектуры API.

Существует несколько способов работы API, например:

  • SOAP API
  • REST API
  • Websocket API
  • RPC 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.

Также рекомендую изучить для полной картины данную статью:

Основы HTTP для начинающего тестировщика

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

Подписывайся на телеграмм канал для будущих тестировщиков:

Василий Волгин - Full Stack тестировщик
0
7 комментариев
Написать комментарий...
Urban nomad

Статья настолько поверхностная и искаженная, что не выдерживает никакой критики. Сразу видно вчерашнего вайтишника после курсов.

Вам бы начинать писать статьи года через 3-4, когда уже появится какое-то понимание того, о чем пишите.

Ответить
Развернуть ветку
Василий Волгин
Автор

Ваша критика настолько поверхностная и искаженная, что можно ответить через 3-4 года))))

Ответить
Развернуть ветку
Иван Дубышкин

Какой-то дешёвый этот REST, не буду на нём АПИ делать

Ответить
Развернуть ветку
Василий Волгин
Автор

Правильно)))

Ответить
Развернуть ветку
Василий Волгин
Автор

На чем его будете делать?)

Ответить
Развернуть ветку
Иван Дубышкин

FIX говорят дорогой, на биржах используется, видимо на нём

Ответить
Развернуть ветку
Василий Волгин
Автор

Ммм…с финансовых площадок. Тут уж вам видней) как командой договоритесь.

Ответить
Развернуть ветку
4 комментария
Раскрывать всегда