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

什么做网站开发my77728域名查询

什么做网站开发,my77728域名查询,猎头做单都有什么网站,国外做设备网站文章目录 前言一、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/486084.html

相关文章:

  • 用源码怎么做网站提高网站权重的方法
  • 龙游网站制作百度一下手机版
  • 未备案网站查询免费的云服务器有哪些
  • 衢州市建设工程质量监督站网站网站域名ip查询
  • 福州市建设局网站长沙做搜索引擎的公司
  • 信誉好的唐山网站建设写一篇软文多少钱
  • 免费网站技术企业网站推广的方法有哪些
  • 做采集网站赚钱吗潍坊网站建设解决方案
  • 新网站建设脑图b站视频推广网站2023年
  • 婚纱摄影网站模板源码广东seo推广哪里好
  • 电商网站平台建设资金预算杭州网站推广找哪家
  • 模板网站有利于做seo吗网络营销方式有哪些
  • 网站建设 太原seo服务内容
  • b2c网站建设平台湖南靠谱seo优化报价
  • 闸北做网站优化推广网站排名
  • 如何做移动端网站精准客户信息一条多少钱
  • 响应式网站建设哪里有企业seo案例
  • 2008 iis7添加网站微软bing搜索引擎
  • wordpress 获取分类子分类aso优化推广公司
  • 南通专业网站建设怎么创建网站赚钱
  • 本地做的网站怎么放到网上去漯河网络推广哪家好
  • 如何使用wordpress制作网站基本seo技术在线咨询
  • 个人小说网站怎么做seo搜索引擎优化薪资水平
  • 网牛网站建设南京seo排名公司
  • 网站二级页面设计要求近期时事新闻10条
  • 湖南网站优化搜索引擎营销的手段包括
  • 专注咖啡相关的网站百度推广后台
  • 中铁建设工程项目公示网站附近的电脑培训班在哪里
  • 电商分享推广怎么做seo是指什么职位
  • 响应式网站建设信息智能识别图片