常用 ASP.NET Core Web API 标准返回
成功状态码 (2xx)
Ok()返回类型:
OkResult(继承自StatusCodeResult) 或OkObjectResult(继承自ObjectResult)HTTP 状态码: 200 OK
用途: 表示请求已成功处理。
Ok(): 返回一个空的 200 OK 响应。Ok(value): 返回 200 OK 响应,并将value序列化为响应体。
示例:
return Ok();或return Ok(new { Message = "操作成功" });
Created(uri, value)返回类型:
CreatedAtActionResult(继承自ObjectResult) 或CreatedAtRouteResult(继承自ObjectResult)HTTP 状态码: 201 Created
用途: 表示请求已成功,并在服务器上创建了新资源。响应通常包含新资源的 URI。
示例:
return Created("api/products/1", new Product { Id = 1, Name = "New Product" });
NoContent()返回类型:
NoContentResult(继承自StatusCodeResult)HTTP 状态码: 204 No Content
HTTP 状态码: 204 无内容用途: 表示请求已成功处理,但没有内容返回。常用于 DELETE 或 PUT 操作成功但不需要返回数据的场景。
示例:
return NoContent();
Accepted()返回类型:
AcceptedResult(继承自StatusCodeResult) 或AcceptedAtActionResult(继承自ObjectResult)HTTP 状态码: 202 Accepted
用途: 表示请求已被接受进行处理,但处理尚未完成。
示例:
return Accepted();
客户端错误状态码 (4xx)
BadRequest()返回类型:
BadRequestResult(继承自StatusCodeResult) 或BadRequestObjectResult(继承自ObjectResult)HTTP 状态码: 400 Bad Request
用途: 表示客户端发送的请求无效或格式不正确。
BadRequest(): 返回一个空的 400 Bad Request 响应。BadRequest(value): 返回 400 Bad Request 响应,并将value(通常是错误信息或模型验证错误)序列化为响应体。
示例:
return BadRequest("请求参数无效");或return BadRequest(ModelState);
Unauthorized()返回类型:
UnauthorizedResult(继承自StatusCodeResult)HTTP 状态码: 401 Unauthorized
用途: 表示请求需要用户身份验证。
示例:
return Unauthorized();
Forbidden()返回类型:
ForbidResult(继承自StatusCodeResult)HTTP 状态码: 403 Forbidden
用途: 表示服务器拒绝了请求。与 401 不同,403 表示客户端已通过身份验证,但无权访问该资源。
示例:
return Forbid();
NotFound()返回类型:
NotFoundResult(继承自StatusCodeResult) 或NotFoundObjectResult(继承自ObjectResult)HTTP 状态码: 404 Not Found
用途: 表示服务器找不到请求的资源。
NotFound(): 返回一个空的 404 Not Found 响应。NotFound(value): 返回 404 Not Found 响应,并将value序列化为响应体。
示例:
return NotFound();或return NotFound("未找到指定资源");
Conflict()返回类型:
ConflictResult(继承自StatusCodeResult) 或ConflictObjectResult(继承自ObjectResult)HTTP 状态码: 409 Conflict
用途: 表示请求与服务器的当前状态冲突,例如尝试创建已存在的资源。
示例:
return Conflict("资源已存在");
服务器错误状态码 (5xx)
StatusCode(statusCode)返回类型:
StatusCodeResult(继承自ObjectResult)HTTP 状态码: 任意自定义状态码 (例如 500 Internal Server Error)
用途: 返回指定的 HTTP 状态码。当没有更具体的辅助方法可用时,这非常有用。
示例:
return StatusCode(500, "服务器内部错误");