Laravel REST API - возвращает различные типы контента на основе параметра заголовка accept - PullRequest
0 голосов
/ 28 марта 2019

Одна из моих конечных точек требует возврата файла PDF. Обычно это JSON по умолчанию.

Считаете ли вы целесообразным использовать if ($request->header('accept') === 'application/pdf') для возврата файла PDF? Это нарушает единственную ответственность?

Что, если у меня много подобных исключений? Было бы слишком сложно иметь много операторов if / else для большого количества методов. Каковы будут ваши предложения?

Ответы [ 3 ]

2 голосов
/ 28 марта 2019

Вы можете создать промежуточное программное обеспечение и применить его к одной конечной точке или к группе из них. Это оставит все организованным и легко управляемым в будущем.

0 голосов
/ 28 марта 2019

Вы должны создать промежуточное программное обеспечение и добавить его в kernel.php в защищенном массиве $ middleware и выполнить этот код в функции handle

  $response = $next($request);

  if ($response instanceof ClassNameFromWhichObjectIsMatch )
        return $response;

   // add other headers
   //  $response->header($key, $value);

   return $response;
0 голосов
/ 28 марта 2019

установить заголовок для php с функцией заголовка в этом api при последнем ответе и для стороны внешнего интерфейса проверить заголовок contentType, от имени которого вы делаете оставшиеся вещи

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...