@Eternal97

Как правильно отдавать ответ из методов контроллера по методологии REST API?

Доброго времени суток. После прочтения множества статей по REST Api на Laravel, появилась путаница в голове. Помогите пожалуйста разъяснить один вопрос. Допустим у меня есть сущность User и я хочу получить, удалить или обновить сущность в бд с помощью методов update и destroy в контроллере. Во всех статьях написано, что метод контроллера отдает ответ в формате JSON. Пример:
public function index()
    {
        $users = User::all();
        return response()->json($users, 200);
    }

public function update(UserRequest $request, $id)
     {
         $user = User::findOrFail($id);
         $user->fill($request->except(['user_id']));
         $user->save();
         return response()->json($user);
     }

public function destroy(UserRequest $request, $id)
     {
         $user = User::findOrFail($id);
         if($user->delete()) return response(null, 204);
     }

Вопрос таков, обязательно ли отдавать JSON и ответы сервера 200, 204, 404 и если обязательно, то как передать JSON во вьюшку, или я могу сделать это так :
public function index()
    {
        $users = User::all();
        return view('userlist', compact('users')):
    }

public function update(UserRequest $request, $id)
     {
         $user = User::findOrFail($id);
         $user->fill($request->except(['user_id']));
         $user->save();
         return redirect()->route('userlist');
     }

public function destroy(UserRequest $request, $id)
     {
         $user = User::findOrFail($id);
         return redirect()->route('userlist');
     }

И если я сделаю так будет ли это считаться REST Api?
Спасибо!
  • Вопрос задан
  • 188 просмотров
Решения вопроса 1
обязательно ли отдавать JSON и ответы сервера 200, 204, 404
Полиция REST вас не арестует, конечно. Но это общепринятые соглашения. Потому что...

будет ли это считаться REST Api
...скорее всего - нет. Потому что вы будете отдавать данные, смешанные с представлением. И чтобы, получив список сущностей, фронтенд мог запросить по одной из них детальную информацию, ему нужно будет сначала из вёрстки выковырять её идентификатор.

REST позволяет серверу отвечать только за данные, а представлением этих данных занимается какая-то другая программа. И поэтому данные отдаются в удобном для работы виде и с понятными кодами ответа, чтобы клиентское приложение могло какую-то логику исходя из этого исполнять.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы