最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Netcore?Webapi返回數(shù)據(jù)的三種方式示例

 更新時間:2022年09月20日 10:35:26   作者:Bonnie愛學習  
這篇文章主要為大家介紹了Netcore?Webapi返回數(shù)據(jù)的三種方式示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪

ASP.NET Core為Web API控制器方法返回類型提供了如下幾個選擇:

Specific type

IActionResult

ActionResult<T>

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

最簡單的API會返回原生的或者復雜的數(shù)據(jù)類型(比如,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>方法,后者的不同點在于它是一個異步模式的集合,好處就是 不阻塞 當前的調(diào)用線程。

下面的代碼展示了如何用 異步集合 來改造 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 就是你要找的東西,下面的代碼片段展示了如何去實現(xiàn)。

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

上面的代碼有 Ok,NotFound 兩個方法,對應(yīng)著 OKResult,NotFoundResult, Http Code 對應(yīng)著 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;
}

如果你有一些定制化需求,可以實現(xiàn)一個自定義的 ActionResult 類,做法就是實現(xiàn) IActionResult 中的 ExecuteResultAsync 方法即可。

以上就是Netcore Webapi返回數(shù)據(jù)的三種方式示例的詳細內(nèi)容,更多關(guān)于Netcore Webapi 返回數(shù)據(jù)的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • C#實現(xiàn)json的序列化和反序列化實例代碼

    C#實現(xiàn)json的序列化和反序列化實例代碼

    這篇文章主要介紹了C#實現(xiàn)json的序列化和反序列化實例代碼,有需要的朋友可以參考一下
    2013-12-12
  • C# dll代碼混淆加密的實現(xiàn)

    C# dll代碼混淆加密的實現(xiàn)

    本文主要介紹了C# dll代碼混淆加密的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-02-02
  • C#中IList<T>與List<T>的區(qū)別深入解析

    C#中IList<T>與List<T>的區(qū)別深入解析

    本篇文章主要是對C#中IList<T>與List<T>的區(qū)別進行了詳細的分析介紹,需要的朋友可以過來參考下,希望對大家有所幫助
    2014-01-01
  • Unity3D基于UGUI實現(xiàn)虛擬搖桿

    Unity3D基于UGUI實現(xiàn)虛擬搖桿

    這篇文章主要為大家詳細介紹了Unity3D基于UGUI實現(xiàn)虛擬搖桿,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-04-04
  • C#二進制序列化實例分析

    C#二進制序列化實例分析

    這篇文章主要介紹了C#二進制序列化,實例分析了C#二進制序列化的方法,代碼中有較為詳盡的注釋說明,便于理解,需要的朋友可以參考下
    2015-05-05
  • C#使用System.Net庫實現(xiàn)自動發(fā)送郵件功能

    C#使用System.Net庫實現(xiàn)自動發(fā)送郵件功能

    在C#編程環(huán)境中,實現(xiàn)郵件發(fā)送功能是一項常見的需求,無論是Web應(yīng)用程序還是Windows窗體應(yīng)用程序,下面小編就來為大家講講如何使用System.Net庫實現(xiàn)這一功能吧
    2025-03-03
  • 如何使用C#在PDF文件添加圖片印章

    如何使用C#在PDF文件添加圖片印章

    文檔中添加印章可以起一定的作用,比如,防止文件隨意被使用,或者確保文檔內(nèi)容的安全性和權(quán)威性。C#添加圖片印章其實也有很多實現(xiàn)方法,這里我使用的是免費的第三方軟件Free Spire.PDF,向大家闡述如何以編程的方式在PDF文件中添加圖片印章
    2017-01-01
  • C# 獲取屬性名的方法

    C# 獲取屬性名的方法

    C# 獲取屬性名的方法實例,需要的朋友可以參考一下
    2013-03-03
  • C#開發(fā)紐曼USB來電小秘書客戶端總結(jié)

    C#開發(fā)紐曼USB來電小秘書客戶端總結(jié)

    這篇文章主要介紹了C#開發(fā)紐曼USB來電小秘書客戶端總結(jié),對于C#項目開發(fā)來說有一定的參考借鑒價值,需要的朋友可以參考下
    2014-08-08
  • C#框架winform實現(xiàn)簡單點餐系統(tǒng)

    C#框架winform實現(xiàn)簡單點餐系統(tǒng)

    這篇文章主要為大家詳細介紹了C#框架winform實現(xiàn)簡單點餐系統(tǒng),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-07-07

最新評論

孝昌县| 湖北省| 固始县| 铜川市| 峨眉山市| 大连市| 林口县| 安平县| 清镇市| 九寨沟县| 灵川县| 额尔古纳市| 北票市| 九台市| 丹寨县| 玛纳斯县| 姜堰市| 德阳市| 临沧市| 黔西| 德兴市| 郁南县| 临夏市| 汤原县| 桃源县| 武胜县| 大化| 赤壁市| 定襄县| 鄂伦春自治旗| 大荔县| 柏乡县| 格尔木市| 抚宁县| 高清| 寻甸| 班玛县| 阳新县| 灵璧县| 泸西县| 商都县|