Есть такое задание "С использованием фреймворка Laravel реализовать RESTful контроллер, который при обращении к нему с Accept: text/html
отдавал бы данные из шаблона, а при обращении по тому же маршруту с Accept: application/json
, отдавал бы корректный RESTful ответ, согласно RFC". Как сделать RESTful контроллер понятно, а вот дальше ничего не понятно, что означает Accept: text/html?
В HTTP-заголовке Accept
клиентского запроса к серверу перечисляются типы данных (MIME), которые клиент может обработать и ожидает получить.
То есть вам нужно проанализировать содержимое этого заголовка в запросе, которое можно получить следующим образом:
$accept = request()->headers->get('accept');
и если он содержит или равен text/html
(request()->acceptsHtml()
), то вернуть HTML вариант страницы:
return view('page_template');
а если он содержит или равен application/json
(request()->acceptsJson()
), то вернуть данные в формате JSON:
return response()->json($page_data);
Виртуальный выделенный сервер (VDS) становится отличным выбором
Изучаю PHP, добрался до оператора switch, пересмотрел множество примеров, но так и не понял как можно с помощью этого оператора реализовать подобное: