为女朋友写一个小程序(一)— —目的与需求
为女朋友写一个小程序(二)— —数据库设计
为女朋友写一个小程序(三)— —基于springboot的服务器端接口设计与实现(本文)
为女朋友写一个小程序(四)— —前端小程序的设计与实现
为女朋友写一个小程序(五)— —如何用docker简化部署
为女朋友写一个小程序(六)— —结合docker实现devOps
为女朋友写一个小程序(七)— —优化引进redis(未编码,未写)
为女朋友写一个小程序(八)— —基于moongodb实现即时通讯(未编码,未写)
为什么没有二先写了三,是因为很气气,这两天和某C厂一次技术交流时,问到了我的项目架构,因为讲了一个比较熟悉,但是架构比较简单,感觉自己被完虐,气不过,所以花了几天的时间回顾了Kikitarget的服务器端技术架构,对自己技术的一个回顾,也想证明自己在开发这一块拥有自己独特的见解,而不是水货!
一、基于半RESTful的接口
1 先明确一下什么是RESTful接口?
之前看过相关知识点,实际上RESTful是一种接口的设计规范。
它把整个应用涉及的所有数据都当成一种资源,以该系统为例:用户、奖品、兑换记录、监督记录等都是一种资源。
客户端的操作,实际都可以抽象为对资源的操作,比如:增,删,改查等。RESTful用一系列的名词,去描述了这些相关的操作,并规范了URL的路径,力求能通过路径去描述对资源的操作、不仅如此,也规范了HTTP请求方法:GET、POST、OPTION 等对应的资源操作动作。
在完成对资源的操作后使用已经定义好的HTTP状态码去描述资源操作的结果,并规范了响应的数据格式,制定了一套固定的响应码去更细粒度的标明响应的结果。
2 我使用的接口格式是什么?
因为是比较小型的项目,所以没有使用完整的RESTful规范去实现所有的接口,但是接口参考了RESTful一些地方。
使用了面向资源的方法,也是使用URL路径去区别对资源的相关操作。
规范自定义的响应格式,在响应中描述请求结果的状态。
使用自定义token进行安全认证。
二、实现
实现这一块的话,想了想决定还是直接描述一下应用的架构体系,并说明每一个对应类的作用,特色的亮点。
1 技术栈
打包使用appassembler。打成标准二进制启动格式。
quartz。自动调度,解决过期任务检查
spring-aop。切面,输出日志,拦截错误请求
hutool。应用工具
数据接入层使用spring data做封装抽象,摆脱了hibernate。
HikariCP。数据库连接池
fastJSON。
基于spring boot 1.5.9。
2 包体系结构
使用XMind描述更好,所以整了一张图
附数据库E-R图
如果对您有帮助,希望给我一分鼓励~愿你我皆不忘初心!