62 lines
2.2 KiB
Go
62 lines
2.2 KiB
Go
// Package router ...
|
|
//
|
|
// Description : router ...
|
|
//
|
|
// Author : go_developer@163.com<白茶清欢>
|
|
//
|
|
// Date : 2025-05-28 20:58
|
|
package router
|
|
|
|
import (
|
|
"testing"
|
|
"time"
|
|
|
|
"git.zhangdeman.cn/zhangdeman/consts"
|
|
"git.zhangdeman.cn/zhangdeman/rate_limit"
|
|
"github.com/gin-gonic/gin"
|
|
)
|
|
|
|
func TestNewServer(t *testing.T) {
|
|
|
|
s := NewServer(9087, WithRateLimitInstance(rate_limit.MemoryClient), WithDocConfig(&DocConfig{
|
|
Enable: true,
|
|
UiTheme: consts.SwaggerUIThemeSwaggerUI.String(),
|
|
BaseUri: "",
|
|
Flag: "test-server",
|
|
ServerList: nil,
|
|
Info: nil,
|
|
SecuritySchemes: nil,
|
|
CommonParameter: nil,
|
|
}))
|
|
s.AddCommonParamRule("UserID", func(ctx *gin.Context) (any, error) {
|
|
return uint(123456), nil
|
|
})
|
|
s.Group("", nil, testController{})
|
|
s.Start()
|
|
}
|
|
|
|
type testCategory struct {
|
|
Meta `json:"-" method:"get" path:"test" rate-limit:"1/5/60" tag:"测试,验证" summary:"本地调试"`
|
|
ID int64 `json:"id" description:"分类ID" eg:"123" binding:"required,min=10,max=100"`
|
|
Sex string `json:"sex" dc:"性别" binding:"required,oneof=man woman" enum-desc:"man:男||woman:女"`
|
|
Name string `json:"name" description:"分类名称" eg:"baichaqinghuan" binding:"required,min=8"`
|
|
}
|
|
type testProduct struct {
|
|
ID int64 `json:"id,omitempty" description:"产品ID" example:"1001" required:"true" binding:"required"`
|
|
Name string `json:"name" description:"产品名称" example:"iPhone 13" minLength:"2" maxLength:"100" required:"true"`
|
|
Price float64 `json:"price" description:"价格" example:"6999.99" min:"0"`
|
|
Stock int `json:"stock" description:"库存" example:"100" min:"0"`
|
|
Tags []string `json:"tags" description:"标签"`
|
|
Attributes map[string]string `json:"attributes" description:"属性"`
|
|
CreatedAt time.Time `json:"created_at" description:"创建时间"`
|
|
UpdatedAt *time.Time `json:"updated_at,omitempty" description:"更新时间"`
|
|
Category *testCategory `json:"category,omitempty" description:"分类"`
|
|
}
|
|
|
|
type testController struct {
|
|
}
|
|
|
|
func (tc testController) Test(ctx *gin.Context, requestData *testCategory) (*testProduct, error) {
|
|
return &testProduct{}, nil
|
|
}
|