預設的情況,Web API 想要用相同的 ClassName 不同的 Namespace 來當成版本 URI 是不行的,幸好這件事不難官方也有提供解法
搬到 Swagger 也不難,只是有一些坑需要踩..
預設的情況,Web API 想要用相同的 ClassName 不同的 Namespace 來當成版本 URI 是不行的,幸好這件事不難官方也有提供解法
搬到 Swagger 也不難,只是有一些坑需要踩..
Swagger 是個不錯的文檔+測試工具,但是卻不支援多個行為,需要靠它來簡化文件的工作,怎麼辦?
我的作法是在測試專案用OWIN把 WebApp 掛起來,測試案例便可直接打進 Web API,需要外部注入來改變內部狀態時,就不能像以前呼叫 Class,我想到了一些作法,比如組態擋、#if、Header,這裡就分享 Header 的做法
續上篇 https://dotblogs.com.tw/yc421206/2019/01/07/authentication_via_jwt-dotnet,這裡介紹 MS JWT 的使用方式
JWT 是一個老牌的套件,從 nuget 上來看他,甚至還比 System.IdentityModel.Tokens.Jwt 還要資深,使用起來也相當的簡單
以下是我的使用過程分享
簡易記錄一下自己知道的
之前有寫過用 TestServer 測試 Web API,[ASP.NET Identity] 使用 Microsoft.Owin.Testing 測試 OAuth Server 和 Web API,某些情境使用上會失效,比如 Redirect,後來又改用了 OWIN,就比較沒有問題了
用 Swagger UI 進行測試時,預設是沒有 Header 可以用,當 API 需要用到 Header,要自己手動處理一下,讓 Swagger UI 提供畫面讓開發人員調試
上篇提到 Model Validation,在 EF 裡面,也是可以吃的到 ValidationAttribute,當調用 SaveChanegs 就會進行 Model 的檢查,當需要把檢查機制寫在 EF 的時候,就可以利用此招
利用 ValidationAttribute 把資料驗證的邏輯抽離應用程式,以提升程式的維護,這裡分享一下我常用的做法