iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >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://www.lsjlt.com/news/167962.html(转载时请注明来源链接)

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

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Netcore Webapi返回数据的三种方式示例
    目录ASP.NET Core为Web API控制器方法返回类型提供了如下几个选择:1. 返回指定类型(Specific type)2. 返回 IActionResult 实例3. 返...
    99+
    2024-04-02
  • Mybatis返回Map数据方式示例
    目录一. 方式1接口调用二. 方式2接口调用三. 方式3接口调用一. 方式1 接口 public interface UserMapper { List<Map<...
    99+
    2024-04-02
  • .NetCore解决WebAPI中返回时间格式带T的问题
    在项目开发中遇到了返回的时间格式带T的问题,如图所示: 直接把这种结果返回给前端,前端很难处理这个时间格式问题,所以就需要后端在返回数据的时候对这种格式进行处理。 新建Order类...
    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 返回值
  • mybatis插入后返回主键id的三种方式
    第一种:在xml文件,insert标签属性中,添加useGeneratedKeys和keyProperty,如图   第二种:在xml文件,添加selectKey标签属性,各个属性值含义:resultType:查询结果的类型;keyProp...
    99+
    2023-08-31
    mysql 数据库
  • 详解Python获取线程返回值的三种方式
    目录方法一方法二方法三最后的话提到线程,你的大脑应该有这样的印象:我们可以控制它何时开始,却无法控制它何时结束,那么如何获取线程的返回值呢?今天就分享一下自己的一些做法。 方法一 使...
    99+
    2024-04-02
  • 数据传输的三种方式
    在通信和计算机网络中,从通信资源的分配角度来看,“交换”就是按照某种方式动态地分配传输线路的资源。常用的数据传输方式有电路交换、报文交换、分组交换。 电路交换 特点: 通信双方独占通信链路 优点: ...
    99+
    2023-09-20
    网络 服务器 运维
  • C++函数返回数据指针的方式
    本篇内容介绍了“C++函数返回数据指针的方式”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!三个函数,返回数组指针,效果是一样的using a...
    99+
    2023-06-04
  • Pandas提取数据的三种方式
    目录前言Pandas读取数据的几种方式1. read_csv2. read_excel3. read_sql前言 快期末了,数据挖掘的大作业需要用到python的相关知识(这太难为我...
    99+
    2023-01-16
    Pandas 提取数据
  • React返回页面的几种方式
    本教程操作环境:windows7系统、react18.0.0版、Dell G3电脑。React返回页面的几种方式?react 移动端返回上一级页面的写法移动端返回上一级页面的写法:import React, {Component} from...
    99+
    2022-11-22
    React
  • MySQL删除数据的三种方式
    MySQL删除数据有以下三种方式:1. 使用DELETE语句:使用DELETE语句可以删除表中的一条或多条数据。语法如下:D...
    99+
    2023-09-22
    MySQL
  • 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
  • MySQL数据库备份的三种方式
    为什么要数据库备份? a 保证重要的数据不丢失 b 数据转移   MYSQL数据库备份的方式1、直接拷贝物理文件(D:\Software\mysql-8.0.28-winx64\data中拷贝)2、在sqlyog这种可视化工具中手动导出(点...
    99+
    2023-09-04
    数据库 mysql
  • python多线程中获取函数返回值的三种方法
    目录方法一:使用队列方法二: 封装 threading.Thread,重写 run 方法方法三:使用进程池方法一:使用队列 import queue import threading...
    99+
    2023-03-01
    python多线程获取函数返回值 python多线程获取返回值
  • Kotlin启动协程的三种方式示例详解
    目录1.launch启动协程2.runBlocking启动协程3.async启动协程1.launch启动协程 fun main() = runBlocking { laun...
    99+
    2022-12-08
    Kotlin启动协程 Kotlin 协程
  • Spring AOP中三种增强方式的示例详解
    目录什么是AOP为什么需要AOPAOP术语@Before@After@Around 什么是AOP AOP (Aspect Orient Programming),直译过来就...
    99+
    2024-04-02
  • Nest.js参数校验和自定义返回数据格式的示例分析
    这篇文章主要介绍Nest.js参数校验和自定义返回数据格式的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!0x0 参数校验参数校验大部分业务是使用 Nest.js 中的管道 方法实现,具体可以查阅文档 。不过...
    99+
    2023-06-14
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作