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

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

以爲此博客很是有用的朋友能夠在右側贊助打賞下,很是感謝你們支持。web

推薦博客數據庫

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

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

二、 Abp源碼總體原理結構、類關係圖等參看大神Hk Zhang異步

http://www.cnblogs.com/1zhk/p/5268054.html數據庫設計

1、利用abp模板構建項目

一、打開官網https://aspnetboilerplate.com/Templates工具

 

 (2)     生成項目後會自動下載代碼學習

2、初始化數據庫

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

默認用戶爲admin/123qwe

一、 打開代碼後,打開程序包管理器管制臺

 

 

二、若是下載的項目代碼中已經有initialCreate遷移文件了,請刪除後執行。

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

 

三、之後想用codefirst向數據庫增長表。則在core裏面增長entity如Student,並在dbcontext裏面加dbset<Student>。

執行命令add-migration 「add-student」

Update-database後數據庫會增長students表

3、配置swagger

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

一、選擇webapi項目,經過nuget安裝Swashbuckle.core

 

 

 

二、 安裝後修改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統一

 

 

三、 啓動web項目(必定是web項目,我也奇怪,必須經過web項目才能啓動swagger看到application動態生成的接口,很是彆扭,建議有空修改爲webapi項目,而不是webapi類庫)

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

 

 

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

 

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

 

4、代碼生成器 abp code generator

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

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

 

 

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

 

 

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

 

 

 

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

 

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

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

 

 

四、 代碼生成器很是牛氣,自動生成方法及註釋,以及各類參數類

 

 5、開發套路

一、咱們選擇的數據庫設計優先,先設計好數據庫。複製出來一套新的解決方案代碼,添加個dbfirst類庫,採用dbfirst生成全部的entity及dbset。注意entity裏面屬性都加好註釋。

二、利用代碼生成器生成代碼,並將代碼拷貝到原來的代碼中去。這樣基本單表操做全部代碼自動完成。

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

相關文章
相關標籤/搜索