Вопрос по MVC и выбору вариантам ответа

Есть вопрос по идеологии. Меня два раза заваливали на собеседованиях на нем и хочу понять как же все таки правильно делать согласно адептам чистого кода? Вопрос в элементарных типах ответа. Т.е. приходит запрос на GET /users запрос может приходить как с rest клиента так и с веба, как нам завещает MVC, решать в каком формате отправлять ответ должен контроллер и вызывать соответствующую вьюху. Но как?

набросал пример почтикода на коленке.

class Controller {

  public users($request) {
    
     $users = Users::get();
     return $this->responce($users, $request->headers('Accept'));
  }

  private response($data, $type) {
     switch($type) {
        case 'application/json': {
           return view('users/json', $data);
        } 

        case 'application/xml': {
           return view('users/xml', $data);
        } 

        case 'text/html': {
           return view('users/html', $data);
        } 

        default: {
           throw new MethodError('Access format not supported');
        } 
     }
  }
}

или нужен билдер какой то? ResponceFabric->view('users')->type('json') который разрулит этот вопрос. не переусложенение ли это?


Ответы (0 шт):