日韩欧美国产精品免费一二-日韩欧美国产精品亚洲二区-日韩欧美国产精品专区-日韩欧美国产另-日韩欧美国产免费看-日韩欧美国产免费看清风阁

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發文檔 其他文檔  
 
網站管理員

.NET 中如何實現 Web API 標準化響應模型

admin
2024年11月22日 14:32 本文熱度 1138

前言

隨著微服務的不斷發展,開發 Web API 并提供一致且清晰的響應模型對開發人員和用戶都至關重要。標準化的響應不僅使可以使用 API 更易于使用,而且還能提高其可維護性。本文將探討在 .NET Core Web API 創建標準化響應的過程,實現管理 API 響應和處理錯誤的實例。

標準響應模型

一致性的 API 響應對于 Web APP 很關鍵。引入標準化響應模型可確保請求端以預測的格式接收響應,無論請求是否成功。現在從定義一個標準模型(ResponseModel<T>)開始,該模型封裝了成功和錯誤場景。

標準響應模型通常包括以下內容:

  • Status(狀態): 表示請求是否成功或是否發生錯誤;

  • Message(消息): 提供與響應有關的其他信息,這可為調試和了解結果提供幫助;

  • Data(數據): 包含 API 返回的實際數據;

  • Exception(異常信息): 當請求不成功,提供所有錯誤詳細信息;


    定義標準化響應模型的簡單示例:

    public class ResponseModel<T>{    /// <summary>    /// 狀態    /// </summary>    public bool Status { get; set; }    /// <summary>    /// 消息    /// </summary>    public string Message { get; set; }    /// <summary>    /// 保存響應數據    /// </summary>    public T Data { get; set; }    /// <summary>    /// 異常    /// </summary>    public List<string> Errors { get; set; }    /// <summary>    ///     /// </summary>    public ResponseModel()    {        Status = true;    }}

    模型實現步驟

    1、創建響應標準模型類

    定義一個可以處理不同類型數據的泛型類ResponseModel<T>,其包括 Status、Message、Data、Errors 等屬性。可參考上面的示例。

    2、在 Controller 服務中實現響應模型

    定義Customer服務的Controller類,方法分別是GetCustomerById 和 CreateCustomer。這二個方法分別為 GET API 的方法與POST API 的方法。

    • 定義一個 Customer 實體類

    public class CustomerModel{    /// <summary>    /// ID    /// </summary>    public int CustomerId {get; set;}    /// <summary>    /// 名稱    /// </summary>    public string CustomerName {get; set;}    /// <summary>    /// 簡稱    /// </summary>    public string CustomerShort {get; set;}    /// <summary>    /// 城市    /// </summary>    public string City {get; set;}    /// <summary>    /// 等級    /// </summary>    public string Grade {get; set;}}

    • GET API  模式的 GetCustomerById

    using Microsoft.AspNetCore.Mvc;
    namespace Fountain.WebAPI.JwtTokenDemo.Controllers{    [Route("api/[controller]")]    [ApiController]    public class CustomerController : ControllerBase    {        /// <summary>        ///        /// </summary>            [HttpGet("{id}")]        public async Task<IActionResult> GetCustomerById(int id)        {            ResponseModel<CustomerModel> response = new ResponseModel<CustomerModel>();
               try            {                CustomerModel item = await itemService.GetItemByIdAsync(id);                if (item == null)                {                    response.Status = false;                    response.Message = "客戶檔案不存在";                    // 返回響應                    return NotFound(response);                }
                   response.Status = true;                response.Message = "Success";                response.Data = item;                // 返回響應                return Ok(response);            }            catch (Exception ex)            {                response.Status = false;                response.Message = "Failure";                List<string> error = new List<string>();                error.Add(ex.Message);                // 返回響應                response.Errors = error;                return StatusCode(500, response);            }        }    }}

    • POST API  模式的 CreateCustomer

    using Microsoft.AspNetCore.Mvc;
    namespace Fountain.WebAPI.JwtTokenDemo.Controllers{    [Route("api/[controller]")]    [ApiController]    public class CustomerController : ControllerBase    {        [HttpPost]        public async Task<IActionResult> CreateCustomer(CustomerModel customer)        {            ResponseModel<string> response = new ResponseModel<string>();            try            {                itemService.CreateCustomer(customer);                response.Data = null;                response.Status = true;                response.Message = "success";                return Ok(response);            }            catch (Exception ex)            {                response.Status = false;                response.Message = "Failure";                response.Data = null;                List<string> error = new List<string>();                error.Add(ex.Message);                // 返回響應                response.Errors = error;                return StatusCode(500, response);            }        }    }}

    3、簡單說明

    ResponseModel 使用泛型的設計,允許響應模型處理任何類型的數據,使其具有極強的通用性和可重用性。無論您的 API 需要返回簡單字符串、復雜對象還是項目集合,通用數據類型參數 <T> 都可以確保標準響應模型可以無縫地適應它。

    小結

    以上是 ASP.NET Core Web API ,使用 C# 實現標準響應模型的具體步驟。通過使用標準響應可以增強用戶體驗、簡化調試并確保Web API的可靠性。希望本文對您有所收獲,如有不到之處,請多多包涵。


    該文章在 2024/11/22 17:03:14 編輯過
    關鍵字查詢
    相關文章
    正在查詢...
    點晴ERP是一款針對中小制造業的專業生產管理軟件系統,系統成熟度和易用性得到了國內大量中小企業的青睞。
    點晴PMS碼頭管理系統主要針對港口碼頭集裝箱與散貨日常運作、調度、堆場、車隊、財務費用、相關報表等業務管理,結合碼頭的業務特點,圍繞調度、堆場作業而開發的。集技術的先進性、管理的有效性于一體,是物流碼頭及其他港口類企業的高效ERP管理信息系統。
    點晴WMS倉儲管理系統提供了貨物產品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質期管理,貨位管理,庫位管理,生產管理,WMS管理系統,標簽打印,條形碼,二維碼管理,批號管理軟件。
    點晴免費OA是一款軟件和通用服務都免費,不限功能、不限時間、不限用戶的免費OA協同辦公管理系統。
    Copyright 2010-2025 ClickSun All Rights Reserved

    主站蜘蛛池模板: 精品国产主播在线亚洲 | 综合图区亚洲 | 熟女一区二区国产精品 | 免费大片aⅴ入口 | 天美麻花星空免费观看乡村版 | 观看高清国产 | 国产高清不卡在线观看 | 国产伦精品一区二区三区免费 | 99在线精品免费视频九九视 | 欧美视频在线一区 | 国产精品小电影 | 国内精品尹人香蕉综合在线观看 | 亚洲欧美日韩综合一区 | 亚洲人成中文字幕在线观看 | 亚洲裸男gv | 日韩.国产.欧美.亚洲 | 亚洲午夜国产片在线观看 | 91大神是啥| 护士张开腿| 国产操女人 | 午夜影院c绿象 | 亚洲国产中文日韩精品乱码 | 国产伦精品 | 色哟哟网站入口在线观看视频 | 在线观看亚洲欧美日本 | 亚洲欧美韩 | 最新热门电影电视剧免费在线观看 | 高清一区二区三区日本久 | 精品亚洲欧美中文字幕在线看 | 国产视频a区 | 国产伦码精品一 | 日韩欧美一区二区三区在线视频 | 丰满岳妇乱一区二区三区 | 国产普通对白手机在线 | 国产欧美不卡 | 国产成自拍亚洲精品 | 欧美精品视频免费看 | 国产系列丝袜熟女精品视频 | 羞羞视频免费网 | 2025手机影院 | 乱码一码二码三码四码狼人 |