Laravel REST API-根据accept标头参数返回不同的内容类型

时间:2019-03-28 08:32:54

标签: laravel rest

我的一个端点要求返回一个PDF文件。通常,默认情况下为JSON。

您认为使用if ($request->header('accept') === 'application/pdf')返回PDF文件是否很好?它打破了单一责任吗?

如果我有很多这样的例外怎么办?对于许多方法而言,拥有大量if / else语句太复杂了。您有什么建议?

3 个答案:

答案 0 :(得分:2)

您可以创建中间件并将其应用于单个端点或一组端点。这样一来,一切都会井井有条,将来也很容易管理。

答案 1 :(得分:0)

在响应的最后为该API中的标头函数设置php标头,并为前端检查标头contentType代表该标头

答案 2 :(得分:0)

您必须制作一个中间件并将其添加到受保护的$ middleware数组中的kernel.php中,并在“处理”功能中执行此代码

  $response = $next($request);

  if ($response instanceof ClassNameFromWhichObjectIsMatch )
        return $response;

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

   return $response;