前言:
.net?6?LTS版本發布已經有一段時間了。此處做一個關于使用.net?6?開發精簡版webapi(minimal?api)的入門教程演示。
1、新建一個項目。此處就命名為?SomeExample:
?
2、選擇?.net6版本,并且此處先去掉HTTPS配置以及去掉使用控制器的選項:
?
3、創建完成以后,原始畫面如下所示。并且,解決方案一欄只剩下program文件,其他文件都被精簡掉了。并且沒有Main函數入口和命名空間等。
?
4、接下來開始做幾個簡單的webapi方法案例。先刪掉原有的,替換為自定義的來個webapi方法,一個Get,一個Post。具體代碼如下圖所示。
?
5、運行以后,會打開自帶的swagger頁面。大佬們可以自行比對代碼部分和swagger部分的一些特點。
?
6、執行HelloWorld這個Get方法的執行結果,如下圖所示。
?
7、執行HelloMiniApi這個Post方法的執行結果,如下圖所示。
?
8、Api根據不同的用途,在swagger展示上面,咱們還可以對它進行一些分類。分類通過設置Tags標簽來實現,具體設置內容:在方法的末尾設置WithTags,里面指定分類的顯示的名稱。運行以后的swagger展示效果和有關代碼,如下圖所示。
?
9、對api方法進行分代碼文件管理。如果API方法很多,全寫在program里面也不現實。所以下面做個拓展。新建用于測試使用的靜態類?TestService,并且實現一個靜態方法 TestApi。其中,方法的參數必須是?this?WebApplication。然后就可以通過傳入的參數,來拓展實現webapi,例如此處新增一個ServiceApi的api方法,以及有關其他實現,如下圖所示。
?
10、新增拓展的api以后,需要在program文件里面引用使用,詳細內容如下圖所示。
?
11、運行以后的swagger展示圖。
?
12、測試下執行結果,返回預期結果,說明測試成功。
?
13、測試下VS?2022熱重載的功能,在返回值里面進行修改,然后點擊熱重載小火苗按鈕進行熱更新。
?
14、熱更新以后,不需要重新編譯,直接在swagger展示頁對剛才設置的api方法進行調用,調用結果如下圖所示,說明熱重載更新成功。將來遇到需要調試的代碼時候,大佬們都可以很方便地進行熱更新,無需重新編譯,可以大大提高效率。
?
15、接下來是依賴注入的驗證測試。新增一個測試服務類?TestDependencyInjection,具體實現內容如圖所示。
?
16、TestDependencyInjection對應的接口?ITestDependencyInjection內容:
?
17、在program文件里面,對上面的服務進行注冊。此處注冊一個單例實例,具體代碼如下圖展示。
?
18、接下來是驗證依賴注入是否成功。此處我在ServiceApi這個webapi方法里面進行注入。注入需要注意事項:在webapi方法的委托類型的參數里面,第一個參數必須是HttpContext;然后后面是自己的參數,此處是注入服務的接口。并且在api方法里面調用了show方法進行驗證。
?
19、運行程序,在swagger展示頁面點擊執行對應的webapi方法,并查看結果。如下圖所示,輸出show方法里面的內容,代表依賴注入成功。
?
20、再擴展個VS2019開始擁有的一個隱藏技能:引用的第三方或者nuget包時候(不限制.net?版本),在對應的封裝的類或者方法上面,按F12,可以直接進入到反編譯以后的代碼里面去,可以看到封裝的源碼。例如此處以UseSwagger為例,在此處按F12進去瞅瞅究竟。
?
21、正常情況下咱們應該F12進去只能看見屬性名稱、方法名稱,看不到具體實現。而現在是可以看到具體實現的代碼的。如下圖所示,方法里面的具體代碼都有,也可以繼續進一步F12去看底層的代碼。
?
以上就是該篇博客的全部內容,如果覺得有幫助,歡迎大家留言、轉發、推薦或點贊。