Ответ
POST используется для создания новых ресурсов. Тестирование фокусируется на корректности создания, валидации входных данных и обработке всех возможных сценариев.
Критические области для проверки:
-
Успешное создание (Happy Path):
- Код ответа:
201 Created— стандартный код при успешном создании. Ответ должен содержать заголовокLocationс URI созданного ресурса. - Тело ответа: Должно содержать полное представление созданного объекта, включая сгенерированные сервером поля (ID, даты).
- Пример успешного запроса:
curl -X POST https://api.example.com/users -H "Content-Type: application/json" -d '{"name": "Alice", "email": "alice@example.com"}'
- Код ответа:
-
Валидация входных данных:
- Обязательные поля: Отсутствие обязательного поля должно возвращать
400 Bad Requestс понятным сообщением об ошибке. - Форматы данных: Проверка валидации email, телефона, дат, числовых диапазонов.
- Ограничения (Constraints): Максимальная длина строк, уникальность значений (например, email). Нарушение должно возвращать
409 Conflictили422 Unprocessable Entity.
- Обязательные поля: Отсутствие обязательного поля должно возвращать
-
Обработка ошибок и граничные случаи:
- Некорректный Content-Type: Запрос с
text/plainвместоapplication/jsonдолжен возвращать415 Unsupported Media Type. - Невалидный JSON:
400 Bad Request. - Дубликаты: Повторная отправка идентичных данных (если это запрещено бизнес-логикой) —
409 Conflict. - Большие объемы данных: Отправка тела запроса, превышающего лимит сервера.
- Некорректный Content-Type: Запрос с
-
Побочные эффекты: Создание ресурса через POST может запускать другие процессы (отправка email, обновление связанных сущностей). Необходимо проверять эти корреляции.
Инструменты: Postman (коллекции, окружения), Swagger/OpenAPI для документации, автотесты на Python (requests, pytest) или JavaScript (axios, jest).