Я пытаюсь оборачивать голову, как создать RESTful API с SLIM. Я понимаю REST, и у меня хорошее понимание тонкости, но я могу понять, как отобразить правильные шаблоны.
Это типичный REST API
$app->get('/wines', 'getWines');
$app->get('/wines/:id', 'getWine');
$app->post('/wines', 'addWine');
$app->put('/wines/:id', 'updateWine');
$app->delete('/wines/:id', 'deleteWine');
Теперь я не понимаю, есть ли у всех маршрутов один и тот же URL-адрес, как вы можете отобразить правильный шаблон представления. Первый запрос GET отображает все вина. Следующий GET отображает только вино с указанным идентификатором. Теперь это то, где мое понимание колеблется. Когда я хочу добавить вино, я пишу маршрут, который по-разному реагирует на запрос GET или POST.
$app->map('/wines', function() {
echo "I respond to multiple HTTP methods!";
})->via('GET', 'POST');
Поэтому для запроса получения я хочу показать форму, чтобы я мог ввести новое вино, но поскольку URL-адрес совпадает с тем, как получить все вина, и они оба являются запросами GET, как я могу отобразить правильный шаблон.
Я надеюсь в этом есть смысл.
благодаря
Вы должны добавить форму для ответа на GET/wines/
которая описывает POST/wines/
и вы должны добавить ссылки для каждого из GET/wines/:id
-s.
Вы можете использовать HAL для ссылок и некоторое ad-hoc решение для формы. Если вы хотите более сложное решение, вы можете использовать Hydra с JSON-LD.