Перейти к основному содержимому

Небольшой, но полный API

Пора собрать всё вместе: API пользователей с пятью классическими конечными точками —

POST /users создать · GET /users список · GET /users/{id} прочитать одного · PUT /users/{id} заменить · DELETE /users/{id} удалить.

Хранилище — словарь в памяти, поэтому пример остаётся самодостаточным. (Настоящий сервер обрабатывает запросы параллельно, поэтому рабочая версия защищала бы словарь блокировкой и, скорее всего, заменила бы его базой данных — обработчики при этом не изменились бы.)


Создание и список

POST разбирает входящий JSON, присваивает пользователю id, сохраняет его и отвечает 201 с созданной записью — вместе с id, чтобы клиент его узнал. GET возвращает всех пользователей в виде JSON-массива.

POST /users и GET /users

Два создания, затем список: каждый POST отвечает 201 с сохранённым пользователем, а последний GET показывает обоих — состояние API росло с каждым запросом.

Prompt
Напишите программу на Python, реализующую часть REST API пользователей для создания и получения списка на основе словаря в памяти: POST /users разбирает JSON, присваивает id и отвечает 201 с созданным пользователем; GET /users отвечает JSON-массивом всех пользователей. Запустите сервер на свободном порту, создайте Ana и Ben, получите их список и выведите каждый код состояния и тело ответа.
Вывод: полная программа на Python

Чтение одного, замена, удаление

Маршруты /users/{id} завершают набор: чтение отвечает 200 или 404, замена записывает новые данные под существующим id, удаление отвечает 204. После удаления тот же GET, который работал раньше, честно возвращает 404 — ресурса больше нет.

GET, PUT и DELETE для /users/{id}

Полный жизненный цикл одного ресурса: прочитать его, заменить (ответ содержит новое имя), удалить и не суметь прочитать — каждый шаг с правильным кодом состояния.

Prompt
Напишите программу на Python, реализующую GET, PUT и DELETE для /users/{id} на основе словаря в памяти, заполненного одним пользователем: GET отвечает 200 или 404 с JSON, PUT заменяет пользователя, сохраняя id, DELETE отвечает 204. Запустите сервер на свободном порту и пройдите полный жизненный цикл — чтение, замена, удаление, повторное чтение, — выводя для каждого шага метод, код состояния и тело ответа.
Вывод: полная программа на Python