Abp項目構建、swagger及代碼生成器


前段時間在學習abp,在配置swagger時踩了不少坑,特此整理一下,方便同行參考。幸運的是又發現了神奇的代碼生成器,分享下親身經驗。

覺得此博客非常有用的朋友可以在右側贊助打賞下,非常感謝大家支持。

推薦博客

1、 Abp項目實踐推薦參照大神角落的白板報的系列博客,比較新,並且是親身體驗。

http://www.cnblogs.com/wer-ltm/p/6824716.html

2、 Abp源碼整體原理結構、類關系圖等參看大神Hk Zhang

http://www.cnblogs.com/1zhk/p/5268054.html

一、利用abp模板構建項目

1、打開官網https://aspnetboilerplate.com/Templates

 

 (2)     生成項目后會自動下載代碼

二、初始化數據庫

參照網址 http://www.cnblogs.com/changyou7/p/6072665.html

默認用戶為admin/123qwe

1、 打開代碼后,打開程序包管理器管制台

 

 

2、如果下載的項目代碼中已經有initialCreate遷移文件了,請刪除后執行。

執行后才會有數據庫,此時程序就能跑起來。

 

3、以后想用codefirst向數據庫增加表。則在core里面增加entity如Student,並在dbcontext里面加dbset<Student>。

執行命令add-migration “add-student”

Update-database后數據庫會增加students表

三、配置swagger

參照http://www.cnblogs.com/wer-ltm/p/5776024.html

1、選擇webapi項目,通過nuget安裝Swashbuckle.core

 

 

 

2、 安裝后修改WebApiModule里面的方法

(1)1處一定要有他,不然swagger測試接口時會報錯400,找不到對應的接口.

(2)2為動態生成接口,根據application項目中的IapplicationService的實現類動態生成controller及action,暴露給外面。Swagger中可以顯示出來接口列表。

(3)4為swagger生成application項目產生的動態接口文檔

(4)5為swagger生成webapi自己手動寫的controller/action接口文檔

 

(5)修改webapi類庫和application類庫的屬性,生成的xml文檔位置與configureSwaggerUi統一

 

 

3、 啟動web項目(一定是web項目,我也奇怪,必須通過web項目才能啟動swagger看到application動態生成的接口,非常別扭,建議有空修改成webapi項目,而不是webapi類庫)

http://localhost:6634/swagger/ui/index#!就能看到接口文檔

 

 

4、 在用swagger測試接口時會經常遇到登錄用戶的權限判斷,比較麻煩,可注釋掉測試完業務。最后有精力統一測試權限

 

 5、在home/index中直接跳轉到swagger的頁面中,方便測試api

 

四、代碼生成器 abp code generator

參照 http://www.cnblogs.com/wer-ltm/p/5777190.html#3639210

1、先在core里面加個student實體類,並用codefirst將表遷移到數據庫中去。add-migration "add-student"; update-database

 

 

2、安裝abp代碼生成器,vs—工具——擴展和更新——abp code generator下載

 

 

3、並右擊web項目,添加,新搭建基架的項目。

 

 

 

然后將代碼分別拷貝到對應的項目中去(大約都是cord和application項目)。

 

3、 參照yoyo.cms項目,將一些類拷貝過來並重構名稱及命名空間。

並將ef引用加入到application中去,因為涉及到iqueryable的分頁、異步等擴展方法。

 

 

4、 代碼生成器非常牛氣,自動生成方法及注釋,以及各種參數類

 

 五、開發套路

1、我們選擇的數據庫設計優先,先設計好數據庫。復制出來一套新的解決方案代碼,添加個dbfirst類庫,采用dbfirst生成所有的entity及dbset。注意entity里面屬性都加好注釋。

2、利用代碼生成器生成代碼,並將代碼拷貝到原來的代碼中去。這樣基本單表操作所有代碼自動完成。

3、具體開發每個表相關業務時修改完善service。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM