# Postman / API для тестировщика

## HTTP-статусы: на что смотреть
| Код | Значение | Когда ок |
|---|---|---|
| 200 | OK | GET, PATCH, DELETE |
| 201 | Created | POST (создание) |
| 204 | No Content | DELETE, иногда PUT |
| 400 | Bad Request | негативная валидация |
| 401 | Unauthorized | нет/просрочен токен |
| 403 | Forbidden | есть токен, нет прав |
| 404 | Not Found | несуществующий ресурс |
| 409 | Conflict | дубликат |
| 422 | Unprocessable | семантическая ошибка |
| 500 | Server Error | НИКОГДА не ок |

## Чек-лист тестирования API
- [ ] Позитив: валидные данные → 2xx + корректное тело ответа
- [ ] Негатив: пустые/граничные/невалидные данные → 4xx (не 500!)
- [ ] Обязательные поля: каждое отсутствует по отдельности
- [ ] Дубликаты → 409, не создание второй записи
- [ ] Права: чужой ресурс → 403/404
- [ ] Токен отсутствует/просрочен → 401
- [ ] Схема ответа: все поля присутствуют, типы совпадают
- [ ] Заголовки: Content-Type, CORS, идемпотентность DELETE/PUT

## Postman environments
`{{base_url}}`, `{{token}}` — переключение стендов без правки запросов.
Tests-вкладка: `pm.response.to.have.status(200)` — авто-проверки.

## cURL из DevTools
Правой кнопкой на запрос в Network → Copy as cURL — и вопрос «что уходит на сервер» закрыт.
