В этой статье мы собрали наиболее часто встречающиеся вопросы на собеседовании по API для специалистов в области QA.
БОЛЬШЕ ВОПРОСОВ С СОБЕСЕДОВАНИЙ В НАШЕМ ТЕЛЕГРАМ КАНАЛЕ QASOBES
Что такое API?
API расшифровывается как программный интерфейс приложения. Это мост между слоем данных и клиентом приложения. Также API определяют, как должны взаимодействовать различные программные компоненты, позволяя им общаться друг с другом.
REST (Representational State Transfer) и SOAP (Simple Object Access Protocol) – распространенные архитектурные стили для API.

Что такое HTTP и HTTPS?
HTTP (Hypertext Transfer Protocol) расшифровывается как протокол передачи гипертекста, а HTTPS (Hypertext Transfer Protocol Secure) – как безопасный протокол передачи гипертекста.
Другими словами, HTTP и HTTPS – это протоколы, используемые для связи между клиентом (например, веб-браузером) и сервером через Интернет. Они определяют, как передаются данные и как они форматируются во время обмена информацией. Основные различия между HTTP и HTTPS связаны с безопасностью. HTTPS добавляет уровень шифрования, что делает его более безопасным.

Как проводить тестирование API?
В тестировании API можно выделить следующие три шага:
- Анализ API документации
- Отправка запросов
- Проверка ответов (проверка кодов состояния и тел ответов, если применимо).
В чем разница между SOAP API и REST API?
SOAP (Simple Object Access Protocol) и REST (Representational State Transfer) – это два разных архитектурных стиля для проектирования веб-сервисов.
– SOAP использует XML в качестве формата сообщений, в то время как REST может использовать различные форматы, но чаще всего применяется JSON.
– SOAP может быть более подходящим для сценариев, где важны строгие стандарты и безопасность, в то время как REST часто предпочитают за его простоту, гибкость и эффективность для веб- и мобильных приложений.
Какие методы API вы знаете?
GET: считывает данные
POST: сохраняет данные
PUT: редактирует данные
DELETE: удаляет данные
– – – – –
PATCH: может использоваться для частичного обновления указанных данных
OPTIONS: запрос информации от эндпоинта
HEAD: получение только заголовков без тела ответа
CONNECT: устанавливает сетевое соединение с ресурсом, обычно используется для туннелирования SSL/TLS
TRACE: веб-сервер будет отвечать на запросы, использующие метод TRACE, повторяя в своем ответе точный запрос, который был получен в целях диагностики.
В чем разница между PUT и PATCH?
PUT означает замену всего ресурса заданными данными, а PATCH – замену только указанных полей.
Какие коды состояния вы знаете?
1xx – Информационный ответ. Информационные ответы используются для указания на то, что задание находится в процессе выполнения.
2xx – Успех.
3xx – Перенаправление.
4xx – Ошибка клиента.
5xx – Ошибка сервера. Клиентом был сделан корректный запрос, но сервер не смог выполнить задачу.
Например:
200 – OK
201 – Создано
404 – Не найдено
403 – Запрещено.
Как работает аутентификация в API?
Основная аутентификация: Клиент включает имя пользователя и пароль в заголовки запроса с помощью заголовка “Authorization”, при этом учетные данные кодируются в base64.
Аутентификация на основе токенов: Пользователи аутентифицируются на сервере для получения токена. Затем токен включается в заголовки запросов для последующих вызовов API. Например, токен Bearer и OAuth (открытая авторизация).
Аутентификация на основе сертификата: Клиенты предъявляют цифровой сертификат в процессе аутентификации. Сервер проверяет сертификат, чтобы удостовериться в подлинности клиента.
Что такое параметр запроса в API?
Параметры запроса – это пары ключ-значение, которые мы можем включить в наш запрос, чтобы передать данные серверу. Они добавляются в конец URL после символа ? и разделяются &.
Например:
https://grademe.com/student?id=123
https://grademe.com/student?id=123&status=active
https://www.google.com/search?q=cat.
В чем разница между параметром path и параметром запроса?
Параметр path является частью самого URL.
Например:
https://grademe.com/student/123.
Параметры запроса – это пары ключ-значение, которые мы можем включить в наш запрос, чтобы передать данные серверу. Они добавляются в конец URL после символа ? и разделяются &.
Например:
https://grademe.com/student?id=123
https://grademe.com/student?id=123&status=active
Что такое тело запроса?
Тело запроса, также известное как полезная нагрузка, – это часть запроса API, в которой данные отправляются от клиента к серверу. Распространенными форматами являются JSON и XML.
Как работает библиотека RestAssured? Приведите пример.
RestAssured – это популярная Java-библиотека, предназначенная для упрощения тестирования REST API. Она предоставляет основанный на поведении стиль (behavioral-driven style) для построения понятных тестов API. Один из примеров, который можно привести:
package api; import io.restassured.http.ContentType; import io.restassured.http.Header; import io.restassured.response.Response; import org.junit.Assert; import org.junit.Test; import static io.restassured.RestAssured.given; public class RestAssuredTest { @Test public void testGetStudent() { Header header = new Header("Authorization", "Bearer asumeValidToken"); Response response = given() .accept(ContentType.JSON) .header(header) .when() .get("http://grademe.us-east-1.elasticbeanstalk.com/student/get"); Assert.assertEquals(200, response.getStatusCode()); Assert.assertEquals(6688, (int) response.body().jsonPath().get("id")); System.out.println(response.asString()); } }
Перевод статьи «Top API Interview Questions for SDET».