最近在做一个大型的J2EE项目,后端语言选择了Java,理所当然的选择了春天,使用Spring MVC来做restful风格的api开发很是方便,春天下面有很多子项目通过Springboot集成也很舒服。程序员都知道沟通很重要,实际项目中,往往是各自为战,尽管使用的是相同的框架,工具,编写的代码却千差万别,为了统一基础代码风格,编写了这个项目种子。
除此之外,在开发一个网站后端api项目时,通常都会经历搭建项目,选择依赖管理工具,引入基础包依赖,配置框架等,为了加快项目的开发进度(早点下的班)还需要封装一些常用的类和工具,如标准的响应结构体封装,统一异常处理切面,接口签名认证,初始化运行方法,轮询方法,api版本控制封装,异步方法配置等。
每次开始一个类型的新项目,以上这些步骤又要重复一遍,虽然能够将老项目拿过来删删减减达到目的,但还是很费时费力,还容易出问题,所以,可以利用面向对象的思想,抽取这类网站后端api项目的共同之处封装成一个项目种子。以后再开发类似的项目,就能直接在这个项目种子上迭代,减少重复劳动。
项目地址:https://github.com/ocubexo/springboot-restful-starter
这是一个基于SpringBoot 2.1.1版本,用于搭建RESTful API工程的脚手架,只需三分钟你就可以开始编写业务代码,不再烦恼于构建项目与风格统一。
-
<李>构建数据库李>
<李>运行<代码>/src/测试> 代码下的<代码> CodeGenerator.java 代码>进行代码生成李>
<李>开始编写业务代码李>
<强> RESTful风格结果生成器强>
1。成功且不带数据的结果
//不带数据的成功结果 返回新结果().success ();
返回结果示例:
{ “代码”:200年, “信息”:“成功”, “数据”:零 } >之前2。成功且带返回数据的结果
返回新结果().success (“Hello, world”);//当然你也可以返回对象或其他类型的数据 用户用户=新用户(); 返回新结果().success(用户),返回结果示例:
{ “代码”:200年, “信息”:“成功”, “数据”:“你好,世界” } >之前或者是:
{ “代码”:200年, “信息”:“成功”, "数据":{ “名称”:“杰克”, “年龄”:20 } } >之前3。错误结果:
//失败方法的参数(错误代码,错误信息) 返回新结果()。失败(10400年,“登陆失败,密码错误”);//你还可以自定义错误结果的代码 返回新结果()。失败(零,“未登录”,401年); >之前返回结果示例:
{ “代码”:400年, “消息”:“登陆失败,密码错误”, “数据”:10400 } >之前或者:
{ “代码”:401年, “消息”:“未登录”, “数据”:零 } >之前<强> RESTful风格的异常接管强>
//参数说明(错误信息,错误代码) 把新ServiceException(“未登录”,401年);//你也可以返回错误代码 把新ServiceException(10404年,“服务器维护中”,404年),>之前返回结果示例:
{ “代码”:401年, “消息”:“未登录”, “数据”:零 } >之前或者:
{ “代码”:404年, “消息”:“服务器维护中”, “数据”:10404 } >之前<>强基于JWT的认证机制强>
@ autowired 私人TokenService TokenService;//生成负载 Object> Map<字符串;有效载荷=new HashMap<字符串,Object> (); payload.put (" id ", 1);//生成令牌 tokenService.generate (TokenType。访问,有效载荷,1);//格式化令牌 字符串标记=getYourToken (); tokenService.parse(令牌);//返回的结果是一个Jwt对象,详见JJWT文档 Auth注解 Auth注解用于获取当前用户的令牌中的userId,在获取的同时会自动校验用户令牌,若用户未登录则会抛出未登录的异常。//在控制器中使用 @PostMapping (/user/1/编辑) 公共结果编辑(@Auth int userId, @ResponseBody sthPosted) {//根据ID判断权限 }SpringBoot2.1 RESTful API项目脚手架(种子)项目