Skip to content

一个可以根据数据库结构,快速生成基于spring boot常用API接口的gradle插件。生成的工程是idea+gradle+springboot+mysql+validation-api框架结构的工程。

License

Notifications You must be signed in to change notification settings

zjiecode/javaweb-api-generate

Repository files navigation

javaweb-api-generate

author star language PRs-welcome license Build Status version

简介

很多时候,想要开发一个小玩意儿,核心功能开发本来就很累了(尤其是对于个人开发者)但还要开发一个后台,针对增删改查的简单后台,写起来更累。 使用这个gradle插件,能够非常快的根据你设计的数据库,生成一个对应的api接口的网站。然后稍微修改一下, 基本就可以完成一个信息的增删改查系统了。

生成的代码的环境

本插件的环境:

  • 推荐使用IDE:idea
  • 构建工具:gradle
  • 网站使用框架:spring boot
  • 使用的数据:mysql

原理

插件根据你输入的数据库,读取对应的数据库结构,生成对应的表的接口代码

使用方式

mac/linux

打开终端,复制下面代码直接执行,根据中文提示,输入对应的信息即可。

bash <(curl -s -S -L https://github.com/zjiecode/javaweb-api-generate/raw/master/setup/setup.sh)

windows

  • 点击这里https://github.com/zjiecode/javaweb-api-generate/raw/master/setup/template.zip,下载模版,
  • 解压下载下来的zip包;
  • 修改builde.gradle里面的配置信息
     config {
         dbDriver 'com.mysql.jdbc.Driver'
         dbHost '127.0.0.1'
         dbPort '3306'
         dbName 'spring_boot_demo'
         dbUser 'root'
         dbPassword '123456'
         basePackage 'com.zjiecode.web.api'
     }
  • 执行gradlew.bat generateCode
  • 如果生成成功,执行gradlew.bat bootRun 就可以启动网站了

如果不出意外 ,就生成了网站工程,在你解压的zip包里面,直接用idea打开就可以了。

给已有项目添加插件

  • 添加插件依赖
     classpath 'com.zjiecode:javaweb-api-generate:{last-version}'//把last-version替换成最新版本
  • 添加应用插件
    apply plugin: 'javaweb-api-generate'//生成代码用的插件
  • 设置配置信息
     config {
         dbDriver 'com.mysql.jdbc.Driver'
         dbHost '127.0.0.1'
         dbPort '3306'
         dbName 'spring_boot_demo'
         dbUser 'root'
         dbPassword '123456'
         basePackage 'com.zjiecode.web.api'
     }

到这里,就添加完了插件,刷新一下gradle,你会看到多出来一个generateCode任务,运行就可以了。

【注意】生成后,请删除本插件,不然,重复生成,会覆盖掉你修改的代码

生成的网站工程介绍

接口

会生成每个数据库表对应的接口,每个表会对应生成7个接口,分别如下

【post】  /{表名}/ 插入数据;
【put】   /{表名}/{id} 修改数据;
【delete】/{表名}/{id} 删除数据;
【get】   /{表名}/{id} 查询某一条数据;
【get】   /{表名}/{pageIndex}/{pageSize} 分页查询;
【get】   /{表名}/all 查询全部数据;
【get】   /{表名}/count} 查询数据条数;

生成以后,也就意味可以直接访问数据库所有数据,请务必删除不需要的接口。

接口数据结构

{
    code: 402, //状态
    msg: "[(GET)/user/2]非法请求", //提示信息
    data: null //数据
}

错误拦截

错误均已经拦截, 返回json格式数据

SUCCESS(200),//成功
BIZ_FAIL(400),//业务异常错误
UNAUTHORIZED(401),//未认证
SIGN_FAIL(402),//签名错误
NOT_FOUND(404),//接口不存在
INTERNAL_SERVER_ERROR(500);//服务器内部错误

接口签名验证

为了保证接口安全 ,避免被非法调用,添加了简单的数据签名,获取所有的参数,按照字典排序,加入密钥和时间戳,做MD5运算, 服务器验证时间差距太大,或者签名不正确会拒绝请求。 签名相关的密约,可以在application.properties文件中配置;

签名相关实现,请查看AppWebMvcConfigurer类。

请求方式(数据格式)

默认的post提交数据方式是:x-www-form-urlencoded,也就是采用a-1&b=2这种 如果你使用json的方式提交数据,可以在字段上注解@ResquestBody即可。

Pull Request

任何问题,欢迎PR,PR请提交到develop分支,感谢.

About

一个可以根据数据库结构,快速生成基于spring boot常用API接口的gradle插件。生成的工程是idea+gradle+springboot+mysql+validation-api框架结构的工程。

Resources

License

Stars

Watchers

Forks

Packages

No packages published