1 Star 0 Fork 55

時間都去哪樂.i / fast-sbapi

forked from wirechen / fast-sbapi 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README

简介

FastSbAPI主要是基于SpringBoot + SpringDataJPA打造的快速构建Restul API的项目。也欢迎大家提出issue或提交pr,旨在为Java开发API的大众提供一个不错的选择。请先花4分钟观看我用心录制的视频哦↓

使用教程[完整版]

FastSb使用教程

功能

已实现

  • 通过可视化脚手架一键生成SQL脚本、dataobject、repository、service及controller
  • 最具Java风格的项目结构、配置文件、精简的POM
  • 统一响应结果封装
  • 统一异常处理
  • 简单的普通用户登录注册
  • 基于JWT的接口权限认证
  • 基于logback的生产环境日志按天滚动记录
  • 常用基础方法抽象封装

TODO

  • 集成swagger,生成API的同时自动生成API文档

项目结构  

  • aspect: AOP切面类
  • config: 项目配置
  • controller: API路由控制层
  • dataobject: javebean对象
    • dto: data transfer object数据传输对象(在controller-service-repository三层之间传输)
    • model: 数据持久模型(对应数据库字段)
    • ro: request object数据请求对象(前端传过来的数据的封装)
    • vo: view obejct视图对象(返回给前端数据的封装)
  • enum: 枚举类
  • exception: 自定义异常类
    • handler: 异常处理类
  • repository: 数据仓库(采用的SpringDataJPA作为的数据持久层)
  • service: 业务接口
    • impl: 业务实现
  • utils: 项目工具集合

数据传输模型

这里主要对dataobject的各个object间的转换与传输做了一个模型。既然选择了用java开发API,那么我们必然是看中了java的严谨与高可维护性,java向来也不是快速开发的主导,项目中各种object的之间的相互转换看似繁琐复杂,但不可否认的是这样做为后期的维护与扩展打下了良好的基础。   客户端请求接口时传输RO(request object),返回结果时接受VO(view object),二者在HTTP传输过程中为json格式

  • Controller层对RO进行转化(根据业务需求转为DTO或者直接转为Model)  
  • Service层将DTO转为Model并传输给Repository层
  • Repository层作为数据的仓库必然只能与Model打交道。响应时Controller层应该对DTO或者Model做VO的转化,VO可以满足前端各种不同的格式的需求,Model层应该与数据库表严格一一对应

开发环境

  • JDK 8
  • Maven 3
  • Mysql 5.7

快速开始

  1. 本项目使用了lombok,所以请确保自己编译器安装了该插件
  2. 克隆项目
  3. 执行初始化SQL脚本
create database fastsbapiDB;
use fastsbapiDB;
drop table if EXISTS user;
create table user (
	id int not null auto_increment,
	username varchar(100) not null comment '用户名',
	password varchar(100) not null comment '登录密码',
    email varchar(100) comment '联系邮箱',
	phone varchar(20) comment '联系手机',
	role tinyint(1) not null comment '用户角色, 0管理员/1普通用户',
	create_time timestamp not null default current_timestamp comment '创建时间',
	update_time timestamp not null default current_timestamp on update current_timestamp comment '修改时间',
	primary key (id)
) comment '用户表';
insert into user values(1,'管理员','123456','','13344445555',0,'2018-03-16 16:10:35','2018-03-16 16:10:39');
  1. 启动项目,浏览器打开http://localhost:8080/api/v1/code/index根据提示生成代码,具体操作请看视频教程

End

希望大家 Star & Fork 给予支持。


============================更新============================

  1. 我们公司的后台就是在该脚手架项目的基础上开发的,主要是给五个前端提供API服务(用户PC端、管理PC端、用户移动端、硬件设备端、小程序端),经过几个月的线上环境运行测试效果稳定。顺便展示一下我们公司后台的项目包结构和后台简易架构图吧。
2. 该项目可能我不会再更新了,因为它单纯作为一个自动生成API脚手架项目的话这里有一个更智能的替代品,那就是Spring推出的更好更快更“傻瓜”的API脚手架项目:Spring Data Rest。它可以让我们通过定义Model自动生成Restful风格的API,感兴趣的朋友可以去官方看一看,地址:https://projects.spring.io/spring-data-rest/

最后,虽然该项目star和fork并不多(哈哈),但是还是要感谢大家的支持,我会继续坚持开源,坚持分享,猿类们我们一起共同进步吧!

空文件

简介

FastSbAPI主要是基于SpringBoot + SpringDataJPA打造的快速构建RestFul API的项目。 展开 收起
Java
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
Java
1
https://gitee.com/chenssyc/fast-sbapi.git
git@gitee.com:chenssyc/fast-sbapi.git
chenssyc
fast-sbapi
fast-sbapi
master

搜索帮助