docs(middleware): 为中间件模块添加标准化 godoc 注释

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
xfy 2026-04-20 11:23:03 +08:00
parent 42a4c8d311
commit 13bfc090f7
6 changed files with 19 additions and 13 deletions

View File

@ -184,13 +184,13 @@ type limitedBodyReader struct {
Read(p []byte) (n int, err error)
}
// ctx 请求上下文,用于设置错误响应
ctx *fasthttp.RequestCtx
ctx *fasthttp.RequestCtx
// limit 最大允许读取的字节数
limit int64
// read 已读取的字节数
read int64
read int64
// done 是否已达到限制
done bool
done bool
}
// Read 实现读取接口,在超过限制时返回错误。

View File

@ -48,6 +48,7 @@ const (
accessAllow = "allow"
accessDeny = "deny"
accessUnknown = "unknown"
geoPrivateAllow = "PRIVATE_ALLOW"
geoPrivateDeny = "PRIVATE_DENY"
)
@ -478,7 +479,7 @@ func actionToString(action Action) string {
case ActionDeny:
return accessDeny
default:
return "unknown"
return accessUnknown
}
}

View File

@ -56,7 +56,7 @@ type AuthRequest struct {
// config 认证子请求配置
config config.AuthRequestConfig
// mu 读写锁,保护并发访问 client 和 config
mu sync.RWMutex
mu sync.RWMutex
}
// NewAuthRequest 使用给定的配置创建一个新的 AuthRequest 中间件。

View File

@ -88,7 +88,7 @@ func NewGeoIPLookup(dbPath string, cacheSize int, ttl time.Duration, privateIPBe
// 默认私有 IP 行为
if privateIPBehavior == "" {
privateIPBehavior = "allow"
privateIPBehavior = accessAllow
}
return &GeoIPLookup{
@ -114,7 +114,7 @@ func (g *GeoIPLookup) LookupCountry(ip net.IP) (string, error) {
// 检查私有 IP
if isPrivateIP(ip) {
switch g.privateIPBehavior {
case "allow":
case accessAllow:
return "PRIVATE_ALLOW", nil // 特殊标记,表示允许
case accessDeny:
return "PRIVATE_DENY", nil // 特殊标记,表示拒绝

View File

@ -250,7 +250,12 @@ func TestGeoIPLookup_Close(t *testing.T) {
// TestGeoIPLookup_TTLExpiration 测试缓存 TTL 过期。
func TestGeoIPLookup_TTLExpiration(t *testing.T) {
geoip, err := NewGeoIPLookup("/tmp/GeoIP2-Country-Test.mmdb", 1000, 1*time.Millisecond, "allow")
testDB := "/tmp/GeoIP2-Country-Test.mmdb"
if _, err := os.Stat(testDB); os.IsNotExist(err) {
t.Skipf("Skipping test: GeoIP test database not available: %v", err)
}
geoip, err := NewGeoIPLookup(testDB, 1000, 1*time.Millisecond, "allow")
require.NoError(t, err)
defer geoip.Close()

View File

@ -32,7 +32,7 @@ type limiterBucket struct {
// counters 限流键到计数器的映射
counters map[string]*windowCounter
// mu 读写锁,保护 counters 的并发访问
mu sync.RWMutex
mu sync.RWMutex
}
// SlidingWindowLimiter 滑动窗口限流器。
@ -43,9 +43,9 @@ type SlidingWindowLimiter struct {
// buckets 分段锁桶数组,固定 16 个桶
buckets [16]*limiterBucket
// window 滑动窗口大小
window time.Duration
window time.Duration
// limit 窗口内最大请求数
limit int
limit int
// precise 是否使用精确模式
precise bool
}
@ -71,9 +71,9 @@ type windowCounter struct {
// timestamps 请求时间戳列表
timestamps []time.Time
// count 当前窗口内的请求计数
count int64
count int64
// mu 互斥锁,保护并发访问
mu sync.Mutex
mu sync.Mutex
}
// NewSlidingWindowLimiter 创建滑动窗口限流器。