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。

相关文章
相关标签/搜索