首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Laravel强制api的json响应

Laravel强制api的json响应
EN

Stack Overflow用户
提问于 2018-04-06 05:41:57
回答 1查看 2.2K关注 0票数 2

我正在使用laravel在我的公司构建一个api。

我遇到的问题是,如果你发送一个api请求,而没有为请求定义正确的头部,那么如果出现失败,例如授权失败或findOrFail()失败,你就会得到html。

我的想法是,你永远不会想要返回html (即使用户有错误的标题)。

我有几个解决方案。在BeforeMiddleware.php中,我可以手动将头部插入到请求中,例如:

代码语言:javascript
复制
// Check if we are on an api route
$apiRoute   = strncmp($uri, '/api/', 5) == 0;

// Insert the request header to force json response
if ($apiRoute){
    $language = $request->header->add('Accept', 'application/json');
}

第二个解决方案是如果它们没有正确的头,就抛出一个错误。

强制json响应的最佳方式是什么?在laravel中处理api响应的好实践是什么?

EN

回答 1

Stack Overflow用户

发布于 2018-08-29 15:46:12

一旦你检测到你在你的api路径上,你就走出了困境,并且确实可以像How do you force a JSON response on every response in Laravel?上建议的那样在app\Exceptions\Handler.php文件中解决你的问题。

对于一个开放源码项目,我以微软格式创建了JSON异常对象作为输出,但您可以随意选择jsonapi格式(http://jsonapi.org/examples/#error-objects-basics):https://github.com/StadGent/laravel_site_opening-hours/blob/develop/app/Exceptions/Handler.php (注意,在此实现中,它确实取决于标头,但我认为您可以使用路径检测)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49681965

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档