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

枣庄网站建设枣庄网站建设属于技术开发吗

枣庄网站建设枣庄,网站建设属于技术开发吗,上海丝芭文化传媒有限公司,建设摩托车官网中国ASP.NET Core为Web API控制器方法返回类型提供了如下几个选择&#xff1a; Specific type IActionResult ActionResult<T> 1. 返回指定类型&#xff08;Specific type&#xff09; 最简单的API会返回原生的或者复杂的数据类型&#xff08;比如&#xff0c;string 或者…

ASP.NET Core为Web API控制器方法返回类型提供了如下几个选择:

  • Specific type

  • IActionResult

  • ActionResult<T>

1. 返回指定类型(Specific type)

        最简单的API会返回原生的或者复杂的数据类型(比如,string 或者自定义对象类型)。考虑如下的Action方法,其返回了一个自定义的Author对象的集合。

[HttpGet]
public List<Author> Get() =>
    _repository.GetAuthors();
    
[HttpGet]
public IEnumerable<Author> Get()
{
   return _repository.GetAuthors();

        从 NetCore 3.0 开始,你不仅可以定义同步形式的 IEnumerable<Author>方法,也可以定义异步形式的 IAsyncEnumerable<T>方法,不同点在于后者是一个异步模式的集合,好处就是不会导致同步迭代,既不阻塞数据库,也不阻塞主线程。

下面的代码展示了如何改造 Get 方法,两个方法返回都是不阻塞的:
[HttpGet]
public IEnumerable<Author> Get()
{
    var authors = _repository.GetAuthors();// 需要等待authors全部查询完成,才会进入下一步迭代,但是返回时又做了一个判断筛选,返回是不阻塞的
    foreach (var author in authors) // 适合数据库量大时,只做全部查询,然后通过foreach筛选,yield迭代返回
    {
        if(author.isMale){
             yield return author;
        } 
    }
}

[HttpGet]
public async IAsyncEnumerable<Author> Get() //异步迭代,既不会阻塞数据库,也不阻塞主线程
{
   var authors = GetAuthorsAsync(); // 使用GetAuthorsAsync异步方法,不用authors查询完毕,就会进入下一步迭代返回authors
   await foreach (var author in authors)
   {
        yield return author;
   }

2. 返回 IActionResult 实例

        如果你要返回 data + httpcode 的双重需求,那么 IActionResult 就是你要找的东西,下面的代码片段展示了如何去实现。

[HttpGet]
public IActionResult Get()
{
  if (authors == null)
      return NotFound("No records");

  return Ok(authors); // 必须有Ok等方法包装
}

        上面的代码有 Ok,NotFound 两个方法,对应着 OKResult,NotFoundResult, Http Code 对应着 200,404。当然还有其他的如:CreatedResult, NoContentResult, BadRequestResult, UnauthorizedResult, 和 UnsupportedMediaTypeResult,都是 IActionResult 的子类。

3. 返回 ActionResult<T> 实例

   ActionResult<T>包装了前面这种模式:可以返回 IActionResult(data + httpcode),也可以返回指定类型T

[HttpGet]
public ActionResult<IEnumerable<Author>> Get()
{
  if (authors == null)
       return NotFound("No records");
   return authors;
}

        和之前IActionResult的 Get 方法相比,这里如果不需要返回httpCode,则直接返回 authors ,而不需要再用 OK(authors) 包装,是一个非常好的简化,而IActionResult必须要使用Ok等包装一下返回。

接下来再把 Get 方法异步化:
[HttpGet]
public async Task<ActionResult<IEnumerable<Author>>> Get()
{
   var data = await GetAuthors();
   if (data == null)
        return NotFound("No record");
   return data;
}

        如果你有一些定制化需求,可以实现一个自定义的 ActionResult 类,做法就是实现 IActionResult 中的 ExecuteResultAsync 方法即可。

如果您喜欢此文章,请收藏、点赞、评论,谢谢,祝您快乐每一天。

http://www.yayakq.cn/news/203277/

相关文章:

  • 南京做网站优化哪家好怎么自己搭建一个网站
  • 做调查问卷能赚钱的网站企业信用网官网
  • 网站备案查询 api下载站用什么cms
  • 楼盘网站建设案例网站建设的目标是
  • 一个微信可以做两个网站支付宝吗外贸怎么做公司网站
  • 新手做网站做什么样的app开发公司怎么选择
  • 建设银行六安市分行网站长沙诚信做网站
  • 东山县建设局网站wordpress子域名网站
  • 如皋网站制作虚拟主机技术
  • 怎么网站是谁做的下载爱南宁app下载
  • 免费淘宝客网站模板大型门户网站建设是什么
  • 免费ppt资源网站小型购物网站开发费用
  • 河南省商丘网站网站市场推广
  • 简单的网站建设wordpress手机端显示
  • 网站头像设计免费制作制作宣传册的步骤
  • 手机网站制作服务机构wordpress cms下载
  • 小说投稿赚钱的网站网站建设专业介绍
  • 如何面试网站开发台州网站建设方案服务
  • 站免费下载安装湖北今天发生的重大新闻
  • 移动网站建设的前景wordpress ssd hdd
  • app和网站开发柳州网站制作服务商
  • 创建好网站如何把浏览wordpress文件夹修改域名
  • 欧美风格网站设计找logo的网站
  • 网站建设制作设计营销 广州服装品牌营销策划方案
  • 网站建设方案书是什么百度只更新快照不收录网站
  • 一个做问卷调查的网站docker.io wordpress
  • 如何建立分销网站12306网站做的好还是百度做的好
  • 云服务器网站配置河源北京网站建设
  • 广告宣传网站新品发布会主持稿范文
  • qq做我女朋友好吗网站特色的合肥网站建设