Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

agxmaster/atrg

Folders and files

NameName
Last commit message
Last commit date

Latest commit

History

3 Commits

Repository files navigation

atrg

简介

在gin框架中注册增删改查的路由,只需要增加一行代码即可拥有所有表的增删改查操作,列表查询支持字段名的别名、根据字段分组、分页、排序、自定义解析规则等便捷操作。

如examples/simple中main.go的代码

func main() {
 g := gin.Default()
 dal.MysqlSetup()
 atrg.SetUp(dal.DB, g)
 g.Run(":8888")
}

创建测试用表

准备工作创建表atm.student 账号密码请修改example/*/dal/mysql.go 中的配置

var dsn = "root:12345678@tcp(localhost:3306)/atm?charset=utf8&parseTime=True&loc=Local"
create table student (
 id bigint unsigned NOT NULL AUTO_INCREMENT COMMENT 'PK',
 name varchar(128) COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' ,
 province varchar(128) COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' ,
 gender int NOT NULL DEFAULT '0' ,
 age int NOT NULL DEFAULT '0',
 class int NOT NULL DEFAULT '0',
 created_at timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ,
 updated_at timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
 PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

运行

运行 examples/main.go main 方法

创建接口

POST /atr/create/:model

创建5个student

 curl -X POST 127.0.0.1:8888/atr/create/student -H 'Content-Type: application/json' -d "{\"name\":\"Beatty\",\"gender\":1,\"age\":12,\"class\":\"1\",\"province\":\"hebei\"}"
 curl -X POST 127.0.0.1:8888/atr/create/student -H 'Content-Type: application/json' -d "{\"name\":\"Bell\",\"gender\":1,\"age\":8,\"class\":\"2\",\"province\":\"hunan\"}"
 curl -X POST 127.0.0.1:8888/atr/create/student -H 'Content-Type: application/json' -d "{\"name\":\"Abbey\",\"gender\":2,\"age\":8,\"class\":\"1\",\"province\":\"beijin\"}"
 curl -X POST 127.0.0.1:8888/atr/create/student -H 'Content-Type: application/json' -d "{\"name\":\"Adele\",\"gender\":2,\"age\":11,\"class\":\"2\",\"province\":\"beijin\"}"
 curl -X POST 127.0.0.1:8888/atr/create/student -H 'Content-Type: application/json' -d "{\"name\":\"Beckman\",\"gender\":1,\"age\":11,\"class\":\"2\",\"province\":\"henan\"}"

成功响应

{"code":0,"data":null,"message":""}

失败响应

{"code":-1,"data":null,"message":""}
list接口

Get /atr/list/:model/:page

curl http://localhost:8888/atr/list/student/2?class=1&_order=age,desc&_order=gender&_size=1
{
 "code":0,
 "data":{
 "total":2,
 "data":[
 {
 "age":8,
 "class":1,
 "created_at":"2024年02月05日T15:06:57+08:00",
 "gender":2,
 "id":3,
 "name":"Abbey",
 "province":"beijin",
 "updated_at":"2024年02月05日T15:06:57+08:00"
 }
 ]
 },
 "message":""
}
info接口

GET /atr/info/:model/:id

curl http://localhost:8888/atr/info/student/1
{
 "code":0,
 "data":{
 "age":12,
 "class":1,
 "created_at":"2024年02月05日T15:06:57+08:00",
 "gender":1,
 "id":1,
 "name":"Beatty",
 "province":"hebei",
 "updated_at":"2024年02月05日T15:06:57+08:00"
 },
 "message":""
}

POST /atr/update/:model

update接口
curl -X POST 127.0.0.1:8888/atr/update/student/5 -H 'Content-Type: application/json' -d "{\"name\":\"Sandra\",\"gender\":1,\"age\":13,\"class\":\"2\"}"
{"code":0,"data":null,"message":""}
delete 接口

POST /atr/delete/:model/:id

curl -X POST 127.0.0.1:8888/atr/delete/student/5
{"code":0,"data":null,"message":""}

批量创建接口

POST /atr/batch/create/:model

 curl -X POST 127.0.0.1:8888/atr/batch/create/student -H 'Content-Type: application/json' -d "[{\"name\":\"Scarlet\",\"gender\":2,\"age\":8,\"class\":\"3\",\"province\":\"beijin\"},{\"name\":\"Tania\",\"gender\":2,\"age\":9,\"class\":\"2\",\"province\":\"hebei\"}]"
{"code":0,"data":null,"message":""}

路由分组

RouterPrefix = "/atr"
CustomRouterPrefix = "/custom"

默认路由有/atr的前缀 这个是可以设置的通过WithRouterPrefix 需要注意如果使用了自定义路由,自定义路由的前缀和默认路由前缀不能一样,因为绑定了不同的middleware分组。

更多功能

绑定模型 绑定模型可以通过模型的注解完成参数校验,和对gorm注解的支持
代码结构
自定义路由
自定义控制器
自定义参数解析 list接口支持
创建前数据完善 create/update/batchcreate 接口在插入数据前可以自定对参数的补充变形,插入和修改前的数据完善
批量创建前数据完善 create/update/batchcreate 接口在插入数据前可以自定对参数的补充变形,插入和修改前的数据完善
修改前数据完善 create/update/batchcreate 接口在插入数据前可以自定对参数的补充变形,插入和修改前的数据完善
展示字段配置 Select/Hidden/AddColumns 对展示数据进行配置、隐藏、扩充
控制访问

list支持分组和聚合函数 参考 examples/custom_route

About

agxmaster/atrg

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

AltStyle によって変換されたページ (->オリジナル) /