## 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" ` } -->