网站收录量,php程序员做企业网站,app打包平台,福建网站建建设根据库表字段自动生成API
一个项目开发离不开数据库的增删改查#xff0c;API功能也基本围绕着表的CRUD#xff1a;增加(Create)、读取(Read)、更新(Update)和删除(Delete)。每个表写一个CRUD#xff0c;方法都差不多#xff0c;逻辑也非常相似。 那么有没有可能根据表结构…根据库表字段自动生成API
一个项目开发离不开数据库的增删改查API功能也基本围绕着表的CRUD增加(Create)、读取(Read)、更新(Update)和删除(Delete)。每个表写一个CRUD方法都差不多逻辑也非常相似。 那么有没有可能根据表结构直接自动化生成各个表的CRUD呢 当然可以前几篇文章已经介绍了golang的API项目搭建和数据库操作那么本篇直接一个飞跃成长项目自动化生成。 生成代码尽量简洁方便根据项目实际需求二次开发。
API规则
首先建立好规则方便生成逻辑统一的CRUD
1.数据库表结构规则
id为int类型自增数值都有创建、更新时间字段名固定为created_at,updated_at且为int64类型存值为时间戳都有状态字段字段名固定为statusint类型初始值为0删除为-1
2.CRUD规则
Create时除了id、status,created_at,updated_at其他字段都作为入参入库时初始status为0创建、更新时间为当前时间戳Read时带分页功能分页参数统一为limit每页条数、offset第几页从1开始响应所有表字段原始数据Update时必传id参数除status,created_at,updated_at外的其他字段都可更改更新时间自动设置为当前时间戳Delete时必传id参数status设置为-1更新时间自动设置为当前时间戳
cli使用
下载cli源码 https://github.com/liyonge-cm/go-api-cli
编译可执行文件
go build按规则创建库表 修改配置文件 修改config/config.yml的配置信息
mysql: mysql连接配置frame:out_path: 项目文件所在位置prj_name: 项目名称json_case: api入参处参的json格式camel-驼峰默认下划线api:tables: - user 指定生成API的表创建项目 执行编辑文件创建项目
go-cli -g frame或直接运行main文件
go run main.go -g frame生成API 执行编辑文件生成API
go-cli -g api或直接运行main文件
go run main.go -g api启动生成的新项目
进入项目文件: cd xxx/prj-aiee-api(配置文件中的项目地址)下载依赖包: go mod tidy修改配置config数据库连接地址等启动: go run main.go 就可以调用API就行增删改查了
api 风格
API method统一为postbody以json入参。如
curl -X POST http://localhost:8080/user/getList -H accept: application/json -d {\limit\: 10,\offset\: 1} API路由以表名作为groupcrud分别为create,get,getList,update,delete。 如有一个表名为user生成API请求地址分别为
http://localhost:8080/user/createhttp://localhost:8080/user/gethttp://localhost:8080/user/getListhttp://localhost:8080/user/updatehttp://localhost:8080/user/delete