当前位置: 首页 > wzjs >正文

永州网站建设公司推荐国外网站排名前十

永州网站建设公司推荐,国外网站排名前十,网站建设与管理小论文,网站怎样做公众号文章目录 前言一、HTTP状态码分类及常用方法二、具体返回方法示例1&#xff09; 2xx 成功类2&#xff09;4xx 客户端错误3&#xff09;5xx 服务器错误4&#xff09;其他特殊状态码 三、高级返回方式1&#xff09;使用 IActionResult 与 ActionResult<T>2&#xff09;统一…

文章目录

  • 前言
  • 一、HTTP状态码分类及常用方法
  • 二、具体返回方法示例
  • 1) 2xx 成功类
    • 2)4xx 客户端错误
    • 3)5xx 服务器错误
    • 4)其他特殊状态码
  • 三、高级返回方式
    • 1)使用 IActionResult 与 ActionResult<T>
    • 2)统一错误处理(Problem Details)
    • 3)自定义状态码结果
  • 四、最佳实践建议
    • 优先使用内置方法
    • POST创建资源时返回201
    • 模型验证统一处理
    • 异步方法一致处理
    • 生产环境隐藏敏感错误
  • 总结


前言

在ASP.NET Core Web API中,HTTP状态码用于表示请求的处理结果。

一、HTTP状态码分类及常用方法

类别常见状态码内置辅助方法使用场景
信息响应100StatusCode(100)协议切换请求
成功响应200Ok() / Ok(object)标准GET请求成功
201CreatedAtAction() / CreatedAtRoute资源创建成功(POST)
202Accepted()请求已接受但未完成处理
204NoContent()成功但无返回内容(DELETE常用)
重定向301RedirectPermanent()永久重定向
302Redirect()临时重定向
客户端错误400BadRequest()请求参数无效
401Unauthorized()未授权访问(未登录)
403Forbid()已登录但权限不足
404NotFound()资源不存在
409Conflict()资源冲突(如重复创建)
422UnprocessableEntity()请求语义正确但验证失败(常用于REST API)
服务器错误500StatusCode(500) / Problem()未处理的服务器错误
503StatusCode(503)服务不可用(维护或过载)

二、具体返回方法示例

1) 2xx 成功类

  1. 示例

    // 200 OK(带数据)
    [HttpGet("{id}")]
    public ActionResult<Item> GetItem(int id)
    {var item = _repository.GetItem(id);return Ok(item); // 自动序列化对象为JSON
    }// 201 Created(创建资源)
    [HttpPost]
    public IActionResult CreateItem(Item item)
    {_repository.Add(item);return CreatedAtAction(nameof(GetItem), new { id = item.Id }, item);
    }// 204 No Content(删除成功)
    [HttpDelete("{id}")]
    public IActionResult DeleteItem(int id)
    {_repository.Delete(id);return NoContent();
    }
    

2)4xx 客户端错误

  1. 示例

    // 400 Bad Request(手动验证)
    [HttpPost]
    public IActionResult PostItem(Item item)
    {if (item.Price <= 0){return BadRequest("价格必须大于0");}return Ok();
    }// 401 Unauthorized(未授权)
    [HttpGet("secret")]
    public IActionResult GetSecret()
    {if (!User.Identity.IsAuthenticated){return Unauthorized();}return Ok("机密数据");
    }// 422 Unprocessable Entity(验证失败)
    [HttpPost("validate")]
    public IActionResult ValidateItem(Item item)
    {if (!ModelState.IsValid){return UnprocessableEntity(ModelState); // 返回详细错误}return Ok();
    }
    

3)5xx 服务器错误

  1. 示例
    // 500 Internal Server Error(自定义错误)
    [HttpGet("error")]
    public IActionResult ThrowError()
    {try{throw new Exception("测试异常");}catch (Exception ex){return Problem(title: "服务器错误",detail: ex.Message,statusCode: 500);}
    }// 503 Service Unavailable(服务不可用)
    [HttpGet("maintenance")]
    public IActionResult Maintenance()
    {return StatusCode(503, new { Message = "系统维护中,请稍后重试" });
    }
    

4)其他特殊状态码

  1. 示例
    // 418 I'm a teapot(彩蛋状态码)
    [HttpGet("teapot")]
    public IActionResult Teapot() => StatusCode(418);// 429 Too Many Requests(限流)
    [HttpGet("limited")]
    public IActionResult LimitedRequest()
    {Response.Headers.Add("Retry-After", "60"); // 添加响应头return StatusCode(429);
    }
    

三、高级返回方式

1)使用 IActionResult 与 ActionResult

  1. 示例
    // 动态返回类型
    [HttpGet("dynamic/{id}")]
    public ActionResult<Item> GetDynamic(int id)
    {var item = _repository.GetItem(id);return item != null ? item : NotFound();
    }
    

2)统一错误处理(Problem Details)

  1. 示例
    // 返回RFC 7807标准错误格式
    [HttpGet("problem")]
    public IActionResult GetProblem()
    {return Problem(detail: "余额不足",instance: HttpContext.Request.Path,statusCode: 400,title: "支付失败");
    }
    

3)自定义状态码结果

  1. 示例
    // 继承ActionResult自定义返回
    public class CustomResult : ActionResult
    {public override void ExecuteResult(ActionContext context){context.HttpContext.Response.StatusCode = 299;context.HttpContext.Response.WriteAsync("自定义状态码");}
    }// 使用自定义结果
    [HttpGet("custom")]
    public IActionResult GetCustom() => new CustomResult();
    

四、最佳实践建议

优先使用内置方法

  1. Ok()、NotFound() 等方法更易读且自动处理序列化。

POST创建资源时返回201

  1. 必须包含Location头指向新资源(通过CreatedAtActionCreatedAtRoute)。

模型验证统一处理

  1. 使用 [ApiController] 特性时,无效模型自动返回400错误。

异步方法一致处理

  1. 异步方法返回Task<IActionResult>,用法与同步方法一致。

生产环境隐藏敏感错误

  1. 通过中间件(如UseExceptionHandler)统一处理500错误,避免泄露堆栈信息。

总结

通过适配的方法,可以清晰、规范地在ASP.NET Core Web API中返回各类HTTP状态码,满足RESTful API的设计要求

http://www.dtcms.com/wzjs/256118.html

相关文章:

  • 成都公园城市建设局网站优质外链
  • 什么网站可以申请做汉语老师推广优化网站排名教程
  • 网站建设的服务怎么样seo研究中心论坛
  • 徐州网站建设案例百度公司官方网站
  • 黑龙江省建设监理协会网站个人博客网页设计html
  • 微网站建设包括哪些内容今日资讯最新消息
  • 联通 网站备案长春seo招聘
  • 苏州创元投资集团网站关键一招
  • 网站设计兼职爱站网为什么不能用了
  • 做一钓鱼网站吗seo外包如何
  • 企业网站方案设计网站推广的途径有哪些
  • 韶关企业网站建设公司短视频培训要多少学费
  • 会员制网站建设百度引擎搜索推广
  • 网站建设北京女儿考试没圈关键词
  • cms模板seo网络推广优化教程
  • 网站建设168抖音seo关键词优化怎么做
  • 企业做网站etp和源程序交换链接平台
  • 免费模板网站制作全网营销有哪些平台
  • 电商网站怎么做seo优化网页设计费用报价
  • 龙岩网站建设大概费用seo网站
  • 专业网站建设模板下载seo网络优化教程
  • 天津网站建设公司百度提问
  • 有每天做任务赚钱的网站吗网站关键词快速优化
  • 网页搜索关键词网站seo推广
  • 建设网站怎么到工商备案推广普通话手抄报句子
  • 查询网站域名搭建一个网站需要多少钱?
  • 长沙人才app网站排名优化怎么做
  • 婚纱摄影网站图片艾滋病多久能查出来
  • 深圳做微网站上海百度研发中心
  • html网站怎么做网络营销推广策划步骤