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

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

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

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

Одно решение, продиктованное природой PHP: каждый запрос запускает скрипт-маршрутизатор заново, поэтому данные не могут жить в переменной между запросами. Настоящие API хранят состояние в базе данных; здесь эту роль играет небольшой JSON-файл — маршрутизатор загружает его, изменяет и записывает обратно. Обработчики сохранили бы свою форму, если бы файл заменили настоящей базой данных.


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

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

POST /users и GET /users

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

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

Прочитать одного, заменить, удалить

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

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

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

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