Appearance
限流 API
1. "获取限流规则列表"
- route definition
- Url: /api/v1/rate-limits
- Method: GET
- Request:
RateLimitsListRequest - Response:
RateLimitsListResponse
- request definition
go
type RateLimitsListRequest struct {
Resource string `form:"resource,optional"`
}- response definition
go
type RateLimitsListResponse struct {
Items []RateLimit `json:"items"`
}2. "创建/更新限流规则"
- route definition
- Url: /api/v1/rate-limits
- Method: PUT
- Request:
RateLimitUpsertRequest - Response:
RateLimitResponse
- request definition
go
type RateLimitUpsertRequest struct {
Name string `json:"name"`
Resource string `json:"resource"`
Limit int `json:"limit"`
Window int `json:"window"`
Action string `json:"action"`
Rules interface{} `json:"rules,optional"`
}- response definition
go
type RateLimitResponse struct {
Id string `json:"id"`
Name string `json:"name"`
Resource string `json:"resource"` // function, api, user
Limit int `json:"limit"` // 每秒请求数
Window int `json:"window"` // 时间窗口(秒)
Action string `json:"action"` // reject, throttle
Rules interface{} `json:"rules"`
Status int `json:"status"`
UpdatedAt string `json:"updatedAt"`
}
type RateLimit struct {
Id string `json:"id"`
Name string `json:"name"`
Resource string `json:"resource"` // function, api, user
Limit int `json:"limit"` // 每秒请求数
Window int `json:"window"` // 时间窗口(秒)
Action string `json:"action"` // reject, throttle
Rules interface{} `json:"rules"`
Status int `json:"status"`
UpdatedAt string `json:"updatedAt"`
}3. "获取限流规则"
- route definition
- Url: /api/v1/rate-limits/:id
- Method: GET
- Request:
RateLimitGetRequest - Response:
RateLimitResponse
- request definition
go
type RateLimitGetRequest struct {
ID string `path:"id"`
}- response definition
go
type RateLimitResponse struct {
Id string `json:"id"`
Name string `json:"name"`
Resource string `json:"resource"` // function, api, user
Limit int `json:"limit"` // 每秒请求数
Window int `json:"window"` // 时间窗口(秒)
Action string `json:"action"` // reject, throttle
Rules interface{} `json:"rules"`
Status int `json:"status"`
UpdatedAt string `json:"updatedAt"`
}
type RateLimit struct {
Id string `json:"id"`
Name string `json:"name"`
Resource string `json:"resource"` // function, api, user
Limit int `json:"limit"` // 每秒请求数
Window int `json:"window"` // 时间窗口(秒)
Action string `json:"action"` // reject, throttle
Rules interface{} `json:"rules"`
Status int `json:"status"`
UpdatedAt string `json:"updatedAt"`
}4. "删除限流规则"
- route definition
- Url: /api/v1/rate-limits/:id
- Method: DELETE
- Request:
RateLimitDeleteRequest - Response:
-
- request definition
go
type RateLimitDeleteRequest struct {
ID string `path:"id"`
}- response definition
5. "预览限流规则"
- route definition
- Url: /api/v1/rate-limits/preview
- Method: POST
- Request:
RateLimitPreviewRequest - Response:
RateLimitPreviewResponse
- request definition
go
type RateLimitPreviewRequest struct {
Rules interface{} `json:"rules"`
}- response definition
go
type RateLimitPreviewResponse struct {
Matches interface{} `json:"matches"`
Impact interface{} `json:"impact"`
}