(二)復習(Error Pattern/Result Pattern/)


文章目錄

  • 項目地址
  • 一、Error Pattern
    • 1.1 定義Error類
      • 1. ErrorType 可發生的錯誤類型
      • 2. Error類
      • 3. ValidataionError
    • 1.2 給每個實體創建Error類
      • 1. CategoryError類
      • 2. TicketErrror類
      • 3. EventErrror類
  • 二、Result Pattern
    • 1.1 自定義返回Result
      • 1. 泛型類
      • 2. 泛型方法
    • 1.2 Api層的Result返回處理
      • 1. Match方法使用委托去除if else判斷
      • 2. ApiResults專門處理Problem的返回
      • 3. 靜態方法和實例方法this補充
      • 4. 泛型委托`Func<TOut>`
    • 1.3 Result Pattern使用
      • 1. 只需要返回一個Guid
      • 2. 非Controller里的報錯
  • 三、Dapper復雜查詢拼接
  • 四、Common模塊提取
    • 4.1 Common組成
    • 4.2 通用服務注冊
      • 1. Application層的服務
      • 2. Infrastructure層
      • 3. Program里傳參
  • 五、多模塊配置
    • 5.1 創建Events模塊單獨配置
    • 5.2 創建ConfigurationExtension
  • 六、HTTP context
      • 1. 中間件共享的數據容器
      • 2. 安全、認證相關數據
      • 3. Trace / Telemetry / Logging 相關數據
  • 7、Middleware Pipeline Behavior
    • 7.1 日志處理
      • 1. 創建日志處理管道行為
      • 2. 注冊behavior在MediarR里
      • 3. program里配置serilog
    • 7.2 異常處理
      • 1. 自定義異常類
      • 2. 異常處理管道行為
      • 3. Api層全局異常處理
      • 4. 將異常處理添加到服務里
    • 7.3 Validation
      • 1. 創建Pipeline behavior
    • 7.4 注冊Pipeline behavior


項目地址

  • 教程作者:
  • 教程地址:
  • 代碼倉庫地址:
  • 所用到的框架和插件:
dbt 
airflow

一、Error Pattern

  • 在使用Result Pattern之前,先定義好Error類

1.1 定義Error類

  • 該項目所有用到的Error類型,先定義出來
    在這里插入圖片描述

1. ErrorType 可發生的錯誤類型

在這里插入圖片描述

2. Error類

  • 主要作用是定義Error發生之后,返回的格式,主要通過工廠方法進行Error的處理
public record Error
{public static readonly Error None = new(string.Empty, string.Empty, ErrorType.Failure);//參數值為 null 的通用錯誤public static readonly Error NullValue = new("General.Null","Null value was provided",ErrorType.Failure);public Error(string code, string description, ErrorType type){Code = code;Description = description;Type = type;}public string Code { get; }public string Description { get; }public ErrorType Type { get; }public static Error Failure(string code, string description) =>new(code, description, ErrorType.Failure);public static Error NotFound(string code, string description) =>new(code, description, ErrorType.NotFound);public static Error Problem(string code, string description) =>new(code, description, ErrorType.Problem);public static Error Conflict(string code, string description) =>new(code, description, ErrorType.Conflict);
}

3. ValidataionError

在這里插入圖片描述

1.2 給每個實體創建Error類

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/89917.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/89917.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/89917.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

20250705-day6

NATO&#xff1a;北大西洋公約組織 Software Crisis&#xff1a;軟件危機 Paradigm&#xff1a;設計范型 Waterfall Model&#xff1a;瀑布模型 Prototype Model&#xff1a;原型模型&#xff08;又稱快速模型&#xff09; Spiral Model&#xff1a;螺旋模型 Agile&#xff1a;…

視頻播放中時鐘的概念及音視頻同步概念

author: hjjdebug date: 2025年 07月 05日 星期六 18:20:45 CST descrip: 視頻播放中時鐘的概念及音視頻同步概念 文章目錄 1.前言: 視頻播放:1. 固定延時時間2. 根據frame的duration來延時.3. 根據frame的PTS 來播放3.1. 時鐘是什么?3.2. 時鐘的用途. 2.音視頻同步: 1.前言: …

Python基礎之字符串操作全解析

在 Python 中&#xff0c;字符串是最常用的數據類型之一&#xff0c;掌握字符串的各種操作對于日常編程至關重要。本文將詳細介紹 Python 字符串的類型特性、編碼轉換、常用運算符及方法&#xff0c;幫助你全面掌握字符串處理技巧。 一、字符串的基本類型 Python 中的字符串屬…

【爬蟲】逆向爬蟲初體驗之爬取音樂

尋找數據 打開F12中的網絡頁面&#xff0c;播放音樂后&#xff0c;篩選媒體&#xff0c;會發現當前這首歌曲音頻鏈接地址&#xff0c;打開后&#xff0c;點擊“標頭”就能能看到請求URL 截取“.mp3”前面的一部分進行搜索&#xff0c;搜索出來了很多數據包&#xff0c;但都是…

CppCon 2018 學習:Fancy Pointers for Fun and Profit

“Fancy Pointers for Fun and Profit” 這個標題聽起來像是在討論**“高級指針用法”**&#xff0c;尤其是在C里&#xff0c;如何利用智能指針、定制指針類型&#xff0c;或者其他高級指針技巧來寫更安全、更高效、更優雅的代碼。 可能的理解和內容方向&#xff1a; 1. 什么是…

思辨場域丨數字信號技術重塑農林牧漁:從“靠天吃飯”到“靠數吃飯”

凌晨三點&#xff0c;山東萊蕪的養豬戶老李被手機震動驚醒。屏幕顯示&#xff1a;3號豬舍&#xff0c;母豬即將分娩。他輕點屏幕啟動遠程監控&#xff0c;翻身繼續入睡——而在幾年前&#xff0c;這樣的夜晚他只能在豬圈里守著。 清晨的茶園里&#xff0c;興業縣的茶農王大姐掏…

文心大模型及百度大模型內容安全平臺齊獲信通院大模型安全認證

近日&#xff0c;文心大模型與百度大模型內容安全平臺——紅線大模型雙雙榮獲中國信息通信研究院泰爾認證中心頒發的“大規模預訓練模型&#xff08;文本生成功能&#xff09;安全認證證書”&#xff0c;且二者的認證級別皆“增強級”的最高級別。 大規模預訓練模型&#xff08…

香港服務器查詢緩存禁用-性能優化關鍵技術解析

在香港服務器運維過程中&#xff0c;查詢緩存禁用是提升數據庫性能的關鍵操作。本文將深入解析禁用查詢緩存的原理、操作步驟、適用場景及注意事項&#xff0c;幫助管理員優化MySQL服務器配置&#xff0c;解決高并發環境下的性能瓶頸問題。香港服務器查詢緩存禁用-性能優化關鍵…

深度學習圖像分類數據集—七種動物識別分類

該數據集為圖像分類數據集&#xff0c;適用于ResNet、VGG等卷積神經網絡&#xff0c;SENet、CBAM等注意力機制相關算法&#xff0c;Vision Transformer等Transformer相關算法。 數據集信息介紹&#xff1a;七種動物識別分類&#xff1a;[Chinese_Merganser, panda, Sika_Deer, …

ubuntu22桌面版中文輸入法 fcitx5

不要去 ubuntu software 下載 fcitx5 快捷鍵用不了 直接 sudo apt install fcitx5 \ fcitx5-chinese-addons \ fcitx5-frontend-gtk4 fcitx5-frontend-gtk3 fcitx5-frontend-gtk2 \ fcitx5-frontend-qt5不要在fcitx5里面設置快捷鍵&#xff0c;有些應用可能無法生效 在設置里全…

推客系統小程序終極指南:從0到1構建自動裂變增長引擎,實現業績10倍增長!

&#x1f4cc; 前言&#xff1a;為什么傳統營銷越來越難做&#xff1f;在流量紅利消失的今天&#xff0c;企業普遍面臨三大增長困境&#xff1a;獲客成本飆升&#xff1a;電商、教育等行業單客成本突破500元&#xff0c;ROI持續走低用戶粘性差&#xff1a;90%的活動用戶只參與一…

【數據結構】排序算法:歸并與堆

歸并排序&#xff1a;分治策略的經典實現 算法原理 歸并排序采用分治法策略&#xff0c;包含三個關鍵步驟&#xff1a; 分解&#xff1a;遞歸地將數組分成兩半 解決&#xff1a;對子數組進行排序 合并&#xff1a;將兩個有序子數組合并為一個有序數組 C語言實現 #includ…

機器學習-CatBoost

參考書籍&#xff1a;《機器學習-公式推導和代碼實現》 官方文檔提供的原生接口代碼參考書籍的P187&#xff5e;P188 簡介 全稱是Categorical Boosting&#xff0c;由俄羅斯搜索引擎巨頭Yandex于2017年提出。突出的優勢是在于可以高效地處理數據中的類別特征 ML中對類別特征…

MPLS 多協議標簽交換

前言&#xff1a; 多協議標簽交換MPLS&#xff08;Multiprotocol Label Switching&#xff09;是一種IP&#xff08;Internet Protocol&#xff09;骨干網技術。MPLS在無連接的IP網絡上引入面向連接的標簽交換概念&#xff0c;將第三層路由技術和第二層交換技術相結合&#xf…

CTF Web PHP弱類型比較與布爾值判斷

題目源碼與注釋 <?php show_source("index.php"); // 顯示自身源碼&#xff0c;方便分析 include("flag.php"); // 包含flag變量 $a $_GET[a]; // 獲取GET參數a&#xff0c;抑制報錯// 關鍵判斷 if($a 0 and $a){echo $flag; …

AntV G6動態連線

完整代碼如下 <!DOCTYPE html> <html lang="zh-CN"> <head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>AntV G6 動態連線</titl…

puppeteerSharp html轉pdf

部屬到linux 上報錯&#xff1a; Failed to launch browser! /wwwroots/xxx/Chrome/Linux-138.0.7204.92/chrome-linux64/chrome: error while loading shared libraries: libatk-1.0.so.0: cannot open shared object file: No such file or directory 問題服務包缺少依賴&…

springBoot接口層時間參數JSON序列化問題,兼容處理

背景&#xff1a;解決前端傳入時間參數格式不固定場景&#xff0c;避免接收參數報錯時間格式不能序列化。一、概述在 Java 后端開發中&#xff0c;處理 JSON 數據時&#xff0c;經常需要對日期時間字段進行反序列化。Java 中常用的日期時間類型是 java.time.LocalDateTime&…

List、Set、Map三者之間的關系

1、數據結構與核心特性接口數據結構順序性唯一性鍵值對null 元素List動態數組/鏈表有序&#xff08;插入順序&#xff09;允許重復否允許多個 nullSet哈希表 / 紅黑樹無序&#xff08;HashSet&#xff09;有序&#xff08;LinkedHashSet/TreeSet&#xff09;不允許重復否僅 Has…

進程控制----進程終止

一、進程終止的核心場景正常終止&#xff08;代碼完整運行完畢&#xff09;成功&#xff1a;進程執行到main函數結束或調用exit()&#xff0c;返回退出碼 0&#xff08;約定為執行成功&#xff09;。失敗&#xff1a;代碼執行完畢但結果異常&#xff0c;返回非零退出碼&#xf…