74 lines
2.7 KiB
Markdown
74 lines
2.7 KiB
Markdown
## Snow
|
||
Snow是一套简单易用的Go语言业务框架,整体逻辑设计简洁,支持HTTP服务、队列调度和任务调度等常用业务场景模式。
|
||
|
||
## Quick start
|
||
|
||
### Build
|
||
sh build/shell/build.sh
|
||
|
||
### Run
|
||
```shell
|
||
1. build/bin/snow -a api #启动Api服务
|
||
2. build/bin/snow -a cron #启动Cron定时任务服务
|
||
3. build/bin/snow -a job #启动队列调度服务
|
||
4. build/bin/snow -a command -m test #执行名称为test的脚本任务
|
||
```
|
||
|
||
## Documents
|
||
|
||
- [项目地址](https://github.com/qit-team/snow)
|
||
- [中文文档](https://github.com/qit-team/snow/wiki)
|
||
- [changelog](https://github.com/qit-team/snow/blob/master/CHANGLOG.md)
|
||
- [xorm](http://gobook.io/read/github.com/go-xorm/manual-zh-CN/)
|
||
|
||
##
|
||
<!--
|
||
|
||
// validator的示例
|
||
// HandleTestValidator godoc
|
||
// @Summary HandleTestValidator的示例
|
||
// @Description HandleTestValidator的示例
|
||
// @Tags snow
|
||
// @Accept json
|
||
// @Produce json
|
||
// @Param testValidator body entities.TestValidatorRequest true "example of validator"
|
||
// @Success 200 {array} entities.TestValidatorRequest
|
||
// @Failure 400 {object} controllers.HTTPError
|
||
// @Failure 404 {object} controllers.HTTPError
|
||
// @Failure 500 {object} controllers.HTTPError
|
||
// @Router /test_validator [post]
|
||
func HandleTestValidator(c *gin.Context) {
|
||
request := new(entities.TestValidatorRequest)
|
||
err := GenRequest(c, request)
|
||
if err != nil {
|
||
Error(c, errorcode.ParamError)
|
||
return
|
||
}
|
||
|
||
Success(c, request)
|
||
return
|
||
}
|
||
|
||
// Address houses a users address information
|
||
type Address struct {
|
||
Street string `json:"street" validate:"required" example:"huandaodonglu"`
|
||
City string `json:"city" validate:"required" example:"xiamen"`
|
||
Planet string `json:"planet" validate:"required" example:"snow"`
|
||
Phone string `json:"phone" validate:"required" example:"snow"`
|
||
}
|
||
|
||
// 请求数据结构
|
||
type TestValidatorRequest struct {
|
||
//tips,因为组件required不管是没传值或者传 0 or "" 都通过不了,但是如果用指针类型,那么0就是0,而nil无法通过校验
|
||
Id *int64 `json:"id" validate:"required" example:"1"`
|
||
Age int `json:"age" validate:"required,gte=0,lte=130" example:"20"`
|
||
Name *string `json:"name" validate:"required" example:"snow"`
|
||
Email string `json:"email" validate:"required,email" example:"snow@github.com"`
|
||
Url string `json:"url" validate:"required" example:"github.com/qit-team/snow"`
|
||
Mobile string `json:"mobile" validate:"required" example:"snow"`
|
||
RangeNum int `json:"range_num" validate:"max=10,min=1" example:"3"`
|
||
TestNum *int `json:"test_num" validate:"required,oneof=5 7 9" example:"7"`
|
||
Content *string `json:"content" example:"snow"`
|
||
Addresses []*Address `json:"addresses" validate:"required,dive,required" `
|
||
}
|
||
--> |