Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature v2.0.0 #119

Merged
merged 4 commits into from
Nov 10, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -13,4 +13,5 @@
.idea/
*.log
demo/*/main
*plan.md
*plan.md
ignores/
37 changes: 37 additions & 0 deletions binding/doc.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
// Package binding 提供了一个非常简单的json以及form的校验功能,支持多种类型的校验。同时也可以自定义函数对某个字段进行校验。主要有两个函数
// 出口`binding.ParseJsonToInstance`和`binding.ValidateInstance`函数。这两个分别用来校验json和form,也可以通过在Param结构体上挂载
// Check函数来自定义校验逻辑。
// ---------------------------------------------------------------------------------------------------------------------
// 定义一个名为UserInfo的Param结构体,包含用户名称、年龄、区域,其中regex这个tag表示该字段必须符合regex指定的正则表达式,如下所示:
//
// Basic Example:
//
// type UserInfo struct {
// Name string `json:"name" form:"name" regex:"^[0-9a-zA-Z_]{1,}$"`
// Age int `json:"age" form:"age"`
// Location string `json:"location" form:"location"`
// }
// ui := UserInfo{}
// if err := handler.CheckParamBinding(&ui); err != nil {
// handler.ResponseAsText(err.Error())
// return
// }
//
// ---------------------------------------------------------------------------------------------------------------------
// 如果我们有较为复杂的教研逻辑,比如需要根据区域判断年龄,例如AK地区的年龄必须大于14,MI地区的年龄必须大于16,我们就可以对刚才的UserInfo
// 结构体挂载一个Check校验函数,代码示例如下:
//
// Basic Example:
//
// func (u *UserInfo) Check() error {
// if u.Location == "AK" && u.Age <= 14 {
// return errors.New("AK地区用户年龄必须大于14岁")
// }
// if u.Location == "MI" && u.Age <= 16 {
// return errors.New("MI地区用户年龄必须大于16岁")
// }
// return nil
// }
//
// ---------------------------------------------------------------------------------------------------------------------
package binding
26 changes: 26 additions & 0 deletions logger/doc.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
// Package logger
// logger 包是Tigo框架的日志组件包,内部里面封装了日志相关操作,包括从配置文件初始化日志,通过config对象初始化日志,以及配置日志等级等。
// 目前该包不支持分布式日志,如果要使用分布式日志,推荐使用其他的第三方日志模块。
// ---------------------------------------------------------------------------------------------------------------------
// 初始化日志配置,如下示例所示:
//
// Basic Example:
//
// logLevel := logger.LogLevel{
// Info: "stdout",
// Warning: "/path/to/logfile",
// Error: "/path/to/logfile",
// Trace: "/path/to/logfile",
// TimeRoll: "D*3",
// }
// logger.InitLoggerWithObject(logLevel)
//
// ---------------------------------------------------------------------------------------------------------------------
// 日志打印用例:
//
// Basic Example:
//
// logger.Info.Print("Hello Logger")
// logger.Info.Println("Hello Logger")
// logger.Info.Printf("Hello %d", 250)
package logger
34 changes: 34 additions & 0 deletions request/doc.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
// Package request
// request 包是Tigo框架的http客户端包,主要用来向服务端发送http请求,该包主要用来做http接口调用,目前尚不支持通过http接口上传文件,但是相
// 关代码可以二次封装,开发者可以自行拓展接口,实现文件上传。
// ---------------------------------------------------------------------------------------------------------------------
// 发送基础的http请求,代码示例如下:
//
// Basic Example:
//
// url := "https://www.github.com"
// response, err := request.Get(url)
// if err != nil {
// panic(err.Error())
// }
// print(response.ToContentStr())
//
// ---------------------------------------------------------------------------------------------------------------------
// 如果要post请求,发送一个json到服务端,可以参考如下示例:
//
// Basic Example:
//
// url := "https://your.server.address:port/request-url"
// headers := map[string]string{
// "Content-Type": "application/json",
// }
// param := map[string]interface{}{
// "param": "value",
// }
// response, err := request.Post(url, param, headers)
// print(response.ToContentStr())
//
// ---------------------------------------------------------------------------------------------------------------------
// `request.Response`继承了`http.Response`,封装了成员变量Content,主要是http response报文的报文体的内容,方便开发者查看报文以及做一
// 些定制化开发。
package request