基于iris和gorm的 api框架
- xxxx
- xxxx
- xxxx
使用例子1 :
settings.Init("test_settings") // 初始化配置, 全局仅执行一次
// 直接获取配置
s := settings.GetSettings()
debug := s.GetBool("DEBUG")
fmt.Println(debug)
使用例子2:
settings.Init("test_settings") // 初始化配置, 全局仅执行一次
// 通过 Settings 模块的快捷方法获取配置
debug := settings.GetBool("DEBUG")
fmt.Println(c.Debug)
- SQL_DEBUG: 是否开启sql调试, 默认为 false, dababase模块使用
使用例子:
// 初始化数据库连接
dbUser := settings.GetString("DATABASE_USER")
dbPwd := settings.GetString("DATABASE_PASSWORD")
dbHost := settings.GetString("DATABASE_HOST")
dbPort := settings.GetString("DATABASE_PORT")
dbName := settings.GetString("DATABASE_NAME")
database.InitDb(dbUser, dbPwd, dbHost, dbPort, dbName)
// 使用db
type User struct {
Id uint64
Name string
Age int
}
u := User{Id: 1}
db.Find(&u)
获取表的列表数据, 使用例子如下:
conf := &ListAPIViewConf{
Model: User{}, // 要查询的表
db: *gorm.Db, // 数据库连接
// 设置查询字段
FilterFields: []string{"name", "age", "id"},
}
rv := NewListAPIView(conf)
data := rv.List(ctx)
过滤字段说明: 过滤字段遵守django的过滤字段规则. 过滤字段必须被预先配置到 FilterFields 里面,否则过滤字段不起作用 分页参数不用配置, 会自动解析 过滤字段规则: 字段名字__过滤方法, 如: name__contains=weiheguang, "__" 为双横线分隔符 通过url查询字段, 如: /api/user?name=weiheguang&age=18 支持的过滤字段方法:
- 分页: page=1&page_size=10
- 精确等于: name=weiheguang 或者 name__exact=weiheguang.
- 大于: age__gt=18
- 大于等于: age__gte=18
- 包含: name__contains=weiheguang
- 字符串以xxx开头: name__startswith=xxx
- 字符串以xxx结尾: name__endswith=xxx
- in: age__in=18,19,20
根据pk获取单条数据, 使用例子如下:
pk := ctx.Params().GetUint64Default("id", 0) // 获取url中的id
conf := &RetrieveAPIViewConf{
Model: rftests.User{}, // 要查询的表
db: database.GetDb(), // 数据库连接
}
rv := NewRetrieveAPIView(conf)
data := rv.GetBy(ctx, pk)
- 运行所有测试: go test -v ./...
- 运行一个包内测试: go test -v ./views
- 运行一个包内测试: go test -v ./middleware/jwt
- 运行一个单独的测试: go test github.com/weiheguang/iris_rest_framework/views -run TestGetByPk
- Fork 本仓库
- 新建 Feat_xxx 分支
- 提交代码
- 新建 Pull Request