How to set header for all requests in route group
You can create a middleware for that.
You'll have check and enforce the Accept header so Laravel will output json no matter what..
class WeWantJson
{
/**
* We only accept json
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle($request, Closure $next)
{
$acceptHeader = $request->header('Accept');
if ($acceptHeader != 'application/json') {
return response()->json([], 400);
}
return $next($request);
}
}
And in your App\Http\Kernel
you can add the middleware to you api group. Then there's no need to manually add it in the routes/routegroups.
Edit:
You could also add a middleware to enforce json no matter what...
class EnforceJson
{
/**
* Enforce json
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle($request, Closure $next)
{
$request->headers->set('Accept', 'application/json');
return $next($request);
}
}