📖 Теория: Postman, HTTP-методы и конвертеры URL
⚡ Краткий конспект
- 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.
Основной рабочий процесс
- Создать коллекцию: нажми
New → Collection, дай название (например, «Flask API»). - Добавить запрос: внутри коллекции нажми
Add Request, задай метод и URL. - Настроить запрос: выбери HTTP-метод, введи URL, добавь заголовки или тело (Body).
- Отправить: нажми
Sendи посмотри ответ сервера.
https://jsonplaceholder.typicode.com. Оно эмулирует CRUD-операции с постами и пользователями.
HTTP-методы в Postman
| Метод | Назначение | Пример использования |
|---|---|---|
GET | Получить данные | GET /users — список пользователей |
POST | Создать ресурс | POST /posts — создать пост с JSON-телом |
PUT | Полностью обновить ресурс | PUT /posts/1 — заменить пост |
DELETE | Удалить ресурс | DELETE /posts/1 — удалить пост |
POST-запрос с JSON
- Выбери метод
POST. - Введи URL, например
https://jsonplaceholder.typicode.com/posts. - Перейди на вкладку Body → raw → JSON.
- Введи JSON:
{
"title": "New title",
"body": "Information",
"userId": 1
}
Нажми Send. Сервер вернёт созданный объект с присвоенным id.
Переменные окружения в Postman
Environment — набор переменных, который можно переключать одним кликом. Удобно, когда у тебя несколько сред: локальная, тестовая, продакшен.
Как создать окружение
- Нажми
Environments → Add, дай имя (например, «Development»). - Добавь переменную, например:
base_url = https://jsonplaceholder.typicode.com. - Сохрани.
Как использовать переменную
В поле 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 |
uuid | UUID-строка формата 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)— это включает автоперезагрузку и подробный вывод ошибок.