Php Laravel API控制器的验证JSON响应

Php Laravel API控制器的验证JSON响应,php,laravel,Php,Laravel,假设我的Laravel8应用程序中有一个负责API web服务的控制器。使用验证程序facade返回正确的HTTP响应/错误消息的选项是什么 public function __invoke(Request $request) { $validator = Validator::make($request->all(), [ 'user_id' => 'required|digits' ]); i

假设我的Laravel8应用程序中有一个负责API web服务的控制器。使用
验证程序
facade返回正确的HTTP响应/错误消息的选项是什么

   public function __invoke(Request $request)
   {

        $validator = Validator::make($request->all(), [
            'user_id' => 'required|digits'
        ]);

        if ($validator->fails()) {
            return response()->json([
                
            ]);
        }

    }

在这种情况下,如果请求正文中缺少
user\u id
,我想使用
$validator
中内置的错误消息返回JSON响应,并使用HTTP 4xx?(我认为400在请求错误的情况下,缺少必需的参数)。我不想在这里重定向,只是返回一个HTTP 400,其中包含错误消息作为JSON响应。如何在Laravel 8.x中实现这一点?

如果您的请求为JSON发送适当的“accept”头,您可以调用
validate
,它将抛出一个异常,导致异常处理程序将消息作为JSON返回,则验证使用422code@lagbox问题是,,我不能指望每个客户机都能设置合适的头。如果需要,也可以通过中间件将此头强制放入请求中,因此,框架认为所有对api的请求都在接受JSON。您是否尝试将
路由
放在
api.php
传入请求中?在
App\Http\Kernel.middlewareGroups