我正在构建一个 Laravel API,并且在发布数据时我需要能够仅接受“application/json”类型的请求。任何其他内容类型都应返回 406“不可接受”响应。
我知道我可以放入一些中间件来检查这一点,但是我想知道是否有更好的方法可以实现这一点?
谢谢
使用这个中间件:
class WeWantJsonMiddleware
{
/**
* We only accept json
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle($request, Closure $next)
{
if (!$request->isMethod('post')) return $next($request);
$acceptHeader = $request->header('Accept');
if ($acceptHeader != 'application/json') {
return response()->json([], 406);
}
return $next($request);
}
}
Run Code Online (Sandbox Code Playgroud)
并将其添加到中App\Http\Kernel以$middleware检查每个帖子请求。如果您只想检查 API posts 请求,只需将其放入$middlewareGroups['api'].
| 归档时间: |
|
| 查看次数: |
7391 次 |
| 最近记录: |