在 .NET Core 定義了兩種快取,本機快取(IMemoryCache);分散式快取(IDistributedCache),用於將快取資料儲存於外部儲存裝置中(如 Redis、SQL Server 或其他分散式快取提供者),使用上沒有甚麼太特別的,單純的記錄下。
Swagger / OpenAPI Specification 內嵌外部 Markdown 文件並用 Redocly 轉成靜態 html
- 164
- 0
- API Specification
- 2024-10-29
我只是想要內嵌 Markdown 到 OpenAPI.yaml 裡,並且用 Redoc 產生出靜態檔案,就卡了一個下午,這沒有筆記一下接下來一定會忘記的,參考連結在這裡 Embed Markdown in Redocly API reference docs
如何使用 Mockoon 建立假服務 (Mock Server)
- 489
- 0
- API Specification
經過好友 張少齊 的推薦得知了這一套 Mock Server,趁著無風無雨的颱風假把玩一下這一套工具,跟著官方文件一路啃到底。
如何使用 Mock Server 建立假服務
- 410
- 0
- API Specification
- 2024-02-28
上篇 提到使用 Prism 來建立 Mock Server,經同事反饋,他期望能使用類似像 Wiremock 有 API 可以在測試步驟根據場景快速的定義 Mock Server 的回傳值,而我期望除了用 API 動態的決定 Mock Server 的回傳值之外,還能匯入 Open API/Swagger,於是我把我手上收集的 Mock Server 清單玩了一遍,發現這一套 Mock Server 可以滿足我需要的
不使用 HttpContext 傳遞 Context 的寫法
上篇 有提到可以透過 ASP.NET / ASP.NET Core 的 HttpContext 來傳遞狀態,由於他的生命週期很短,每一個調用者擁有獨立的狀態,很適合用來跨層傳遞狀態;現在,我想要降低對 HttpContext 的依賴,改由自訂的 ContextAccessor 保留物件的狀態,傳遞系統所必要的狀態,統一由一個點進行修改,比如登入帳號、追蹤 Id,其他的點,只能取用不能修改。
通過 Refitter CLI,從 Swagger / OpenAPI Specification 檔案,產生 Refit Interfaces Client
一直以來都是用 NSwag 來產生 OpenAPI Client & Server Code,但它所產生出來的 Client Code 會 throw Exception,這讓我在商業流程的控制需要額外付出一些心力,為了解決這問題,我會額外再墊一層,最近逛到有人分享 Refit 這個套件,它所產生出來的具名 Method 不會拋出例外,讓我可以根據 HttpStatusCode + Error Content 控制商業流程。
Web API 通過 Morcatko.AspNetCore.JsonMergePatch 實現更新部分資源
- 395
- 0
- Json Patch
- 2023-05-11
我曾經在端點使用 Dictionary<string,object> 型別,當調用端傳入 {"name":null} 時,移除 name key;傳入 {"name":"123"} 時,name 得的值等於 "123",這樣便能夠做到類似 Json Path 的功能,參考上篇,在不改變合約的情況之下,這次我想要改用 Morcatko.AspNetCore.JsonMergePatch 來實現更新部分資源並且讓端點的合約變成強型別。
ASP.NET Core 網站應用程式如何設定健康檢查
- 1698
- 0
- Application Performance Monitor
- 2022-09-15
ASP.NET Core 提供了健康檢查的 Middleware,可以讓我們很輕鬆的知道應用程式目前的本身的狀態以及應用程式所依賴其他服務的狀態;也可以讓容器協調器進行重新啟動容器或是暫停服務,比如 K8s 的 Liveness、Readiness
令人驚喜的是 AspNetCore.HealthChecks.UI 提供 UI / Alert 讓監視系統變得更有效率了
如何使用 Swagger/OpenAPI Specification + Prism 建立基於合約的 Mock Server
- 1540
- 0
- API Specification
- 2024-02-24
在介接其他人寫的 Web API 時,可以透過 Mock Server 來模擬對方會回傳的資料,比如說 json-server,但這樣往往會因為兩造之間沒有一個合約、規範,各自實作,導致最後在整合的時落差太大;理論上,雙方基於合約、規範,進行開發,最後在整合的時候應該有問題的狀況應該會小一點,Prism 是套基於 Swagger/OpenAPI Specification 的 Mock Server,在 OpenAPI 的生態系裡面算是蠻完整的解決方案之一,接下來,是我對它在使用上的小小心得。
如何模組化 Swagger / OpenAPI Specification 檔案
- 1101
- 0
- API Specification
- 2022-07-27
當我們的 Swagger / OpenAPI Specification 寫到某一個程度就會開始想要模組化、重用它,例如,當 components/schemas 節點需要被其他的檔案參照。