В этой статье мы собрали наиболее часто встречающиеся вопросы на собеседовании по 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».
