📖 Теория: Postman, HTTP-методы и конвертеры URL

🎯 Тема: инструменты тестирования API и динамические маршруты

⚡ Краткий конспект

  • Postman — GUI-клиент для тестирования API. Поддерживает коллекции, переменные окружения, автотесты.
  • GET — получить данные. POST — создать. PUT — обновить. DELETE — удалить.
  • Конвертеры URL: string (по умолчанию, без слешей), int (целое число), float (дробное), path (со слешами), uuid (UUID-идентификатор).
  • <path:text> отличается от <string:text> тем, что принимает слеши /.

Postman — инструмент для тестирования API

Postman — это приложение с графическим интерфейсом для отправки HTTP-запросов к API. Оно позволяет быстро протестировать endpoint, не писав клиентский код.

Зачем нужен Postman

  • Отправлять запросы с разными HTTP-методами (GET, POST, PUT, DELETE, PATCH).
  • Передавать параметры, заголовки и тело запроса (JSON, form-data).
  • Сохранять запросы в коллекции и делиться ими с командой.
  • Использовать переменные окружения для переключения между dev/staging/prod.
  • Писать простые автотесты (проверка статус-кода, структуры ответа).

Установка

Скачай Postman с официального сайта: postman.com/downloads. Доступны версии для Windows, macOS и Linux.

Основной рабочий процесс

  1. Создать коллекцию: нажми New → Collection, дай название (например, «Flask API»).
  2. Добавить запрос: внутри коллекции нажми Add Request, задай метод и URL.
  3. Настроить запрос: выбери HTTP-метод, введи URL, добавь заголовки или тело (Body).
  4. Отправить: нажми Send и посмотри ответ сервера.
Совет: для обучения используй публичное тестовое API https://jsonplaceholder.typicode.com. Оно эмулирует CRUD-операции с постами и пользователями.

HTTP-методы в Postman

МетодНазначениеПример использования
GETПолучить данныеGET /users — список пользователей
POSTСоздать ресурсPOST /posts — создать пост с JSON-телом
PUTПолностью обновить ресурсPUT /posts/1 — заменить пост
DELETEУдалить ресурсDELETE /posts/1 — удалить пост

POST-запрос с JSON

  1. Выбери метод POST.
  2. Введи URL, например https://jsonplaceholder.typicode.com/posts.
  3. Перейди на вкладку Body → raw → JSON.
  4. Введи JSON:
{
  "title": "New title",
  "body": "Information",
  "userId": 1
}

Нажми Send. Сервер вернёт созданный объект с присвоенным id.

Переменные окружения в Postman

Environment — набор переменных, который можно переключать одним кликом. Удобно, когда у тебя несколько сред: локальная, тестовая, продакшен.

Как создать окружение

  1. Нажми Environments → Add, дай имя (например, «Development»).
  2. Добавь переменную, например: base_url = https://jsonplaceholder.typicode.com.
  3. Сохрани.

Как использовать переменную

В поле URL вместо полного адреса пиши:

{{base_url}}/users

Postman подставит значение переменной перед отправкой запроса.

Конвертеры URL во Flask

Flask позволяет делать части URL динамическими с помощью конвертеров. Синтаксис:

@app.route('/<converter:variable_name>')
КонвертерЧто принимаетПример URL
stringТекст без слешей (по умолчанию)/hello/anna
intЦелое положительное число/double/42
floatДробное число (с точкой)/square/3.14
pathТекст со слешами/reverse/a/b/c
uuidUUID-строка формата xxxxxxxx-xxxx-...)/item/550e8400-e29b-41d4-a716-446655440000
Важно: конвертер string (по умолчанию) не принимает слеши. Если тебе нужен путь со слешами — используй path.

Пример с конвертером int

@app.route('/double/<int:number>')
def double_number(number):
    return f'{number} doubled is {number * 2}'

Если открыть /double/5 — вернётся "5 doubled is 10". Если открыть /double/abc — Flask вернёт 404 Not Found, потому что abc не является int.

Пример с конвертером path

@app.route('/reverse/<path:text>')
def reverse_text(text):
    return f'{text} reversed is {text[::-1]}'

Запрос /reverse/hello/world передаст в функцию text="hello/world". С конвертером string такой URL вызвал бы 404.

Повторение: Flask vs Django

Кратко напомним ключевые отличия, которые закрепляются в этом уроке:

  • Flask — микрофреймворк. Минимум из коробки, максимум свободы. Подходит для микросервисов, прототипов, простых API.
  • Django — полнофункциональный фреймворк. Админка, ORM, аутентификация из коробки. Подходит для больших проектов.
  • Flask использует декораторы маршрутов @app.route() для связывания URL с функциями.
  • Flask запускается через app.run(debug=True) — это включает автоперезагрузку и подробный вывод ошибок.