狠狠色丁香婷婷综合尤物/久久精品综合一区二区三区/中国有色金属学报/国产日韩欧美在线观看 - 国产一区二区三区四区五区tv

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

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

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

前言

隨著微服務的不斷發展,開發 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