答客問:中文欄位對輸出資料長度的影響?

答客問:中文欄位對輸出資料長度的影響?

在口罩API系統()()都有朋友提出了中文欄位對長度的見解。我是個人沒什麼特別的想法,Just Do it 的寫程式驗證最簡單有效。

簡單五步驟:以EF Core整合SQLite儲存口罩剩餘數量資訊

簡單五步驟:以EF Core整合SQLite儲存口罩剩餘數量資訊

前篇,我們展示使用 ASP.NET Core Web API 來快速提供口罩剩餘數量查詢API,但這個展示專案有二個較大缺點,我們持續來改進它。

  1. 原始資料採用 Unicode 編碼,尤其是中文欄位,這會造成傳輸資料過程的資料量不小。
  2. 我們只是單純轉拋政府資料開放平臺的口罩剩餘數量的資料,每次請求就重新請求與轉拋,它們的資料更新並不即時。

我們會先處理第二點,這裡我選擇利用 EF Core 整 SQLite 來當暫存資料的儲存點,因為原始資料約 6000 筆上下,這樣的處理量 SQLite 非常合適,而且它的特色是帶著就走且免費,發行部署也相當方便。在未超過更新間隔時前,就由 SQLite 裡去取資料,以減輕資料源的壓力。在處理第二點時,會隨便處理第一點,在取回政府資料開放平臺的口罩剩餘數量資料並儲存前,我們利用 Model 裡的一點小技巧來轉換資料源到英文欄位,並以英文欄位來輸出。

簡單四步驟:使用ASP.NET Core提供口罩剩餘數量查詢API

簡單四步驟:使用ASP.NET Core提供口罩剩餘數量查詢API

以下利用一個ASP.NET Core Web API範例來說明如何在ASP.NET Core撰寫一支去串接政府資料開放平臺的口罩剩餘數量,並提供為API讓人家使用。

資料來源:健保特約機構口罩剩餘數量明細清單

使用nuget.exe快速取消與啟用nuget package source

使用nuget.exe快速取消與啟用nuget package source

在進行一個 Visual Studio Core + Entity Framework Core 測試程式時,在新增套件時,不斷跑出「無法載入來源」的錯誤,然後停止安裝。

dotnet add package Microsoft.EntityFrameworkCore.Sqlite
  Writing C:\Users\BruceChen\AppData\Local\Temp\tmp1C89.tmp
info : 正在將套件 'Microsoft.EntityFrameworkCore.Sqlite' 的 PackageReference 新增至專案 'D:\Temp\EFCoreFirst\EFCoreFirst.csproj'。
info : 正在還原 D:\Temp\EFCoreFirst\EFCoreFirst.csproj 的封裝...
info :   GET https://api.nuget.org/v3-flatcontainer/microsoft.entityframeworkcore.sqlite/index.json
error: 無法載入來源 https://xxxxxxxxxx.pkgs.visualstudio.com/_packaging/BestFeed/nuget/v3/index.json 的服務索引。
error:   Response status code does not indicate success: 401 (Unauthorized).

小心ASP.NET Core裡Async結尾Action方法!

小心ASP.NET Core裡Async結尾Action方法!

在測試一段非同步程碼時,發現一個 ASP.NET Core 裡 Route 有趣現象。平常為了測試方便,習慣會修改預設路由規則,例如將 ASP.NET Core Web API Route("api/[controller]") 改為 Route("ControllerName/[action]")

Redis Master-Slave-Sentinel for Windows Container

Redis Master-Slave-Sentinel for Windows Container

Master-Slave-Sentinel 本機測試

我們先在本機進行 Redis for Windows 的 Master-Slave-Sentinel 架構測試。由於微軟官方已經不再繼續維護 Redis for Windows,目前還有一位 tporadowski fork 後持繼在更新與維護。讓我們謝謝他。