返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >Netcore Webapi返回数据的三种方式示例
  • 609
分享到

Netcore Webapi返回数据的三种方式示例

2024-04-02 19:04:59 609人浏览 薄情痞子
摘要

目录ASP.net core为WEB api控制器方法返回类型提供了如下几个选择:1. 返回指定类型(Specific type)2. 返回 IActionResult 实例3. 返

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 async IAsyncEnumerable<Author> Get()
{
   var authors = await GetAuthors();
   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);
}

上面的代码有 OkNotFound 两个方法,对应着 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 方法相比,这里直接返回 authors 而不需要再用 OK(authors) 包装,是一个非常好的简化。

接下来再把 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 方法即可。

以上就是Netcore webapi返回数据的三种方式示例的详细内容,更多关于Netcore Webapi 返回数据的资料请关注编程网其它相关文章!

--结束END--

本文标题: Netcore Webapi返回数据的三种方式示例

本文链接: https://lsjlt.com/news/167962.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Netcore Webapi返回数据的三种方式示例
    目录ASP.NET Core为Web API控制器方法返回类型提供了如下几个选择:1. 返回指定类型(Specific type)2. 返回 IActionResult 实例3. 返...
    99+
    2024-04-02
  • .NetCore解决WebAPI中返回时间格式带T的问题
    在项目开发中遇到了返回的时间格式带T的问题,如图所示: 直接把这种结果返回给前端,前端很难处理这个时间格式问题,所以就需要后端在返回数据的时候对这种格式进行处理。 新建Order类...
    99+
    2024-04-02
  • Mybatis返回Map数据方式示例
    目录一. 方式1接口调用二. 方式2接口调用三. 方式3接口调用一. 方式1 接口 public interface UserMapper { List<Map<...
    99+
    2024-04-02
  • SpringBoot返回多种格式的数据的实现示例
    目录一、SpringBoot整合FastJson1.1、引入FastJson依赖包1.2、创建一个Web MVC的配置类,并放在springboot扫描包路径下。1.3、测试fast...
    99+
    2024-04-02
  • Python 获取线程返回值的三种方式
    提到线程,你的大脑应该有这样的印象:我们可以控制它何时开始,却无法控制它何时结束,那么如何获取线程的返回值呢?今天就分享一下自己的一些做法。方法一:使用全局变量的列表,来保存返回值ret_values = [] def thread_fu...
    99+
    2023-05-14
    Python CPython 返回值
  • Android解析json数据示例代码(三种方式)
    Json数据 代码如下: [{"code":"110000","sheng":"11","di":"00","xian":"00","name":"北京市","level":...
    99+
    2022-06-06
    json数据 JSON 示例 Android
  • mybatis插入后返回主键id的三种方式
    第一种:在xml文件,insert标签属性中,添加useGeneratedKeys和keyProperty,如图   第二种:在xml文件,添加selectKey标签属性,各个属性值含义:resultType:查询结果的类型;keyProp...
    99+
    2023-08-31
    mysql 数据库
  • 详解如何在ASP.NET Core Web API中以三种方式返回数据
    在 ASP.NET Core 中有三种返回 数据 和 HTTP状态码 的方式,最简单的就是直接返回指定的类型实例,如下代码所示: [ApiController] [...
    99+
    2022-06-07
    net ASP.NET 数据 core api ASP Web
  • 详解Python获取线程返回值的三种方式
    目录方法一方法二方法三最后的话提到线程,你的大脑应该有这样的印象:我们可以控制它何时开始,却无法控制它何时结束,那么如何获取线程的返回值呢?今天就分享一下自己的一些做法。 方法一 使...
    99+
    2024-04-02
  • Django返回json数据用法示例
    本文实例讲述了Django返回json数据用法。分享给大家供大家参考,具体如下: 1、前端。jQuery发送GET请求,并解析json数据。getJSON方法可参考这里。 url = "http://e...
    99+
    2022-06-04
    示例 数据 Django
  • 数据传输的三种方式
    在通信和计算机网络中,从通信资源的分配角度来看,“交换”就是按照某种方式动态地分配传输线路的资源。常用的数据传输方式有电路交换、报文交换、分组交换。 电路交换 特点: 通信双方独占通信链路 优点: ...
    99+
    2023-09-20
    网络 服务器 运维
  • React返回页面的几种方式
    本教程操作环境:windows7系统、react18.0.0版、Dell G3电脑。React返回页面的几种方式?react 移动端返回上一级页面的写法移动端返回上一级页面的写法:import React, {Component} from...
    99+
    2022-11-22
    React
  • C++函数返回数据指针的方式
    本篇内容介绍了“C++函数返回数据指针的方式”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!三个函数,返回数组指针,效果是一样的using a...
    99+
    2023-06-04
  • MySQL删除数据的三种方式
    MySQL删除数据有以下三种方式:1. 使用DELETE语句:使用DELETE语句可以删除表中的一条或多条数据。语法如下:D...
    99+
    2023-09-22
    MySQL
  • Pandas提取数据的三种方式
    目录前言Pandas读取数据的几种方式1. read_csv2. read_excel3. read_sql前言 快期末了,数据挖掘的大作业需要用到python的相关知识(这太难为我...
    99+
    2023-01-16
    Pandas 提取数据
  • Python判断回文数的三种方法实例
    需求: 从控制台输入一个五位数,如果是回文数就打印“是回文数”,否则打印“不是回文数”,例如:11111 12321 12221 “回文”是指正读反读都能读通的句子,它是古今中外都...
    99+
    2024-04-02
  • ajax如何处理服务器返回的三种数据类型
    这篇文章给大家分享的是有关ajax如何处理服务器返回的三种数据类型的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。其原理很简单,结构上基本不变,只是改变处理返回数据的方式.1.Te...
    99+
    2024-04-02
  • python中int返回的方法示例
    这篇文章给大家分享的是有关python中int返回的方法示例的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。python的数据类型有哪些python的数据类型:1. 数字类型,包括int(整型)、long(长整型)...
    99+
    2023-06-14
  • python多线程中获取函数返回值的三种方法
    目录方法一:使用队列方法二: 封装 threading.Thread,重写 run 方法方法三:使用进程池方法一:使用队列 import queue import threading...
    99+
    2023-03-01
    python多线程获取函数返回值 python多线程获取返回值
  • Android XML数据的三种解析方式
    本篇文章包含以下内容:      XML数据的Dom解析      XML数据的Sax解析 &n...
    99+
    2022-06-06
    XML Android
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作