公交车上荫蒂添的好舒服的电影-公用玩物(np双xing总受)-公用小荡货芊芊-公与妇仑乱hd-攻把受做哭边走边肉楼梯play-古装一级淫片a免费播放口

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

.NET 中如何實現(xiàn) Web API 標(biāo)準(zhǔn)化響應(yīng)模型

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

前言

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

標(biāo)準(zhǔn)響應(yīng)模型

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

標(biāo)準(zhǔn)響應(yīng)模型通常包括以下內(nèi)容:

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

  • Message(消息): 提供與響應(yīng)有關(guān)的其他信息,這可為調(diào)試和了解結(jié)果提供幫助;

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

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


    定義標(biāo)準(zhǔn)化響應(yīng)模型的簡單示例:

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

    模型實現(xiàn)步驟

    1、創(chuàng)建響應(yīng)標(biāo)準(zhǔn)模型類

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

    2、在 Controller 服務(wù)中實現(xiàn)響應(yīng)模型

    定義Customer服務(wù)的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 = "客戶檔案不存在";                    // 返回響應(yīng)                    return NotFound(response);                }
                   response.Status = true;                response.Message = "Success";                response.Data = item;                // 返回響應(yīng)                return Ok(response);            }            catch (Exception ex)            {                response.Status = false;                response.Message = "Failure";                List<string> error = new List<string>();                error.Add(ex.Message);                // 返回響應(yīng)                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);                // 返回響應(yīng)                response.Errors = error;                return StatusCode(500, response);            }        }    }}

    3、簡單說明

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

    小結(jié)

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


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

    主站蜘蛛池模板: 国产精品视频第二区 | 国产做无码视频在线观看 | 精品无码人妻被多人侵犯av | 国产a丝袜尤物老师流白浆 国产a网欧美午夜性 | 国产未成女年一区二区 | 国产av无码 | 国产午夜精品一区二区三区嫩草 | 国产成人精品自在钱拍 | 99久久久无码国产精品6 | 国产高跟制服剧情在线 | 精品一区二区av电影 | 精品熟女少妇a∨免费久久 精品熟女少妇a∨免费久久1 | 国产成人在线免费网站 | 91精品国产全国免费观看蜜桃 | 国产成人综合精品 | 国产成人黄网站在线观看软件 | 成人免费观看电影 | 国产白丝喷水娇喘视频 | 国产成人一区二区三区 | 国产原创中文精品经理篇 | 国产一区二区三区高潮老年人 | 国产成人一区二区三区精品 | 国产成人精品美女在线 | 丰满少妇一级av毛片 | 国产女主播视频一区二区三区 | 国在线产香蕉精品青青 | 国产91高清免费 | 国产三级不卡在 | 国产成人理论片在线观看 | 国产福利视频在线观看 | 精品亚州aⅴ无码一区 | 国产av无码专区亚洲av男同 | 国产一级片内射视 | 国产一本到最新视频直播在线 | 激情高潮毛片免费视频 | 动漫精品专区一区二区三区不 | 国产日韩欧美一区二区三区四区 | 国产成人无码v片在线观看 国产成人无码v在线播放不卡 | 国产麻豆极品色哟哟 | 91丝袜在线观看 | 国产成人午夜福利电影在线观看者 |