第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

從 WebAPI 控制器返回 DTO

從 WebAPI 控制器返回 DTO

C#
一只萌萌小番薯 2022-01-09 14:49:28
不幸的是,還沒有找到任何涉及這方面的帖子。我創(chuàng)建了一個 WebAPI 應(yīng)用程序 (ASP.NET Core 2.1) 并利用NSwag來自動生成打字稿服務(wù)代理。我看過控制器操作返回JsonResult& 的代碼示例ActionResult。DTO 通常屬于Service Layer,所以我想知道是否可以將它們用作控制器操作輸出。我想知道從控制器操作返回 DTO 是否正確??刂破鳎篬Route("api/[controller]/[action]")][Authorize]public class EntryController : ControllerBase{    private readonly IEntryService _entryService;    public EntryController(        IEntryService entryService        )    {        _entryService = entryService;    }    public async Task<List<EntryDto>> GetMany(long id)    {        var result = await _entryService.GetMany(id);        return result;    }}服務(wù):public class EntryService : BaseService, IEntryService{    private readonly IEntryHighPerformanceService _entryHighPerformanceService;    public EntryService(        AppDbContext context,        IEntryHighPerformanceService entryHighPerformanceService,        SessionProvider sessionProvider        ) : base(              context,              sessionProvider              )    {        _entryHighPerformanceService = entryHighPerformanceService;    }    public async Task<List<EntryDto>> GetMany(long id)    {        var dtos = _entryHighPerformanceService.GetByVocabularyId(id);        return await Task.FromResult(dtos);    }}
查看完整描述

1 回答

?
千萬里不及你

TA貢獻(xiàn)1784條經(jīng)驗 獲得超9個贊

參考ASP.NET Core Web API 中的控制器操作返回類型

ActionResult<T> 類型

ASP.NET Core 2.1 引入了ActionResult<T>Web API 控制器操作的返回類型。它使您能夠返回派生自ActionResult或返回特定類型的類型。與 IActionResult 類型相比,ActionResult 具有以下優(yōu)點:

  • [ProducesResponseType]屬性的類型屬性可以被排除。例如,[ProducesResponseType(200, Type = typeof(Product))]簡化為[ProducesResponseType(200)]。操作的預(yù)期返回類型是從Tin 推斷出來的ActionResult<T>

  • 隱式轉(zhuǎn)換運營商支持的轉(zhuǎn)換TActionResultActionResult<T>。T轉(zhuǎn)換為 ObjectResult,這意味著return new ObjectResult(T);簡化為return T;。

以你的控制器為例

[HttpGet]

public async Task<ActionResult<List<EntryDto>>> GetMany(long id) {

    //lets say we wanted to validate id

    if(id < 1) {

        return BadRequest("id must be greater than zero (0)");

    }


    var result = await _entryService.GetMany(id);

    if(result == null || result.Count == 0) {

        return NotFound(); // returns proper response code instead of null

    }

    return result;

}


查看完整回答
反對 回復(fù) 2022-01-09
  • 1 回答
  • 0 關(guān)注
  • 288 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號