isMethod('POST') || $request->isMethod('PUT') || $request->isMethod('PATCH')) { if (!$request->hasHeader('Content-Type') || !str_contains($request->header('Content-Type'), 'application/json')) { return response()->json([ 'success' => false, 'error' => ErrorCode::INVALID_REQUEST_FORMAT, 'message' => '请求头必须包含 Content-Type: application/json', ], Response::HTTP_BAD_REQUEST); } } // 检查 Accept if (!$request->hasHeader('Accept') || !str_contains($request->header('Accept'), 'application/json')) { return response()->json([ 'success' => false, 'error' => ErrorCode::INVALID_REQUEST_FORMAT, 'message' => '请求头必须包含 Accept: application/json', ], Response::HTTP_BAD_REQUEST); } // 检查 API 版本 if (!$request->hasHeader('X-API-Version')) { return response()->json([ 'success' => false, 'error' => ErrorCode::INVALID_REQUEST_FORMAT, 'message' => '请求头必须包含 X-API-Version', ], Response::HTTP_BAD_REQUEST); } // 检查客户端标识 if (!$request->hasHeader('X-Client-ID')) { return response()->json([ 'success' => false, 'error' => ErrorCode::INVALID_REQUEST_FORMAT, 'message' => '请求头必须包含 X-Client-ID', ], Response::HTTP_BAD_REQUEST); } return $next($request); } }