后台文章管理系统开发记录

1、建数据库,user后台管理员账户表,article_text文章正文表,article_property文章属性表,operate_log文章敏感操作记录表。同时还使用了sso项目的注册用户user表

2、基于gin框架进行开发,首先写api文件,与前端和产品进行讨论后设计每个接口的输入输出以及错误码,一般查询接口用get,对数据库进行修改的使用post。

实现:初始化数据库,redis,log组件。初始化其他数据源,如阿里云客户端。

在router中定义api文件中的各个接口与对应的处理函数,同时设置跨域、校验token等中间件,

在handler中写这些处理函数,使用redis incrby进行限流,使用当前时间作为key,当次数超过限制时,就触发限流。这一层从gin的ctx中读取前端传入的各个变量。get接口用query,post接口用body,body传参时后端人员需要指定传参类型,一般采用json格式,上传文章时则采用form格式,以支持大文本上传。获取变量之后还会进行简单判断,如校验数字的大小范围,变量的类型是否是json等。之后将数据传到service层。

在service层中,接收handler层传过来的变量,交给repository进行数据读取。

在repository层中,根据前端传过来的变量从redis中获取数据,如果redis不存在则利用gorm从数据库中读取数据,并添加到redis中。查询使用where设置条件,修改时使用field限定字段。返回的数据与数据库一致,返回service层。

在service层,包装repository层返回的数据,根据接口文件的要求,返回对应的数据到handler层。

在handler层,接收service层的数据,response code msg data。如果存在错误,则在msg中写出对应错误,data=nil。如果无错误,则msg=nil,data中返回结果。数据层次需要严格按照api文档进行包装,否则前端会出错。

posted @ 2022-03-10 19:59  polarbear1  阅读(107)  评论(0编辑  收藏  举报