add limiter web api

This commit is contained in:
ginuerzh
2022-09-06 15:38:45 +08:00
parent 779af72f7c
commit 54e1801e74
13 changed files with 330 additions and 48 deletions

View File

@ -156,6 +156,11 @@ definitions:
$ref: '#/definitions/HostsConfig'
type: array
x-go-name: Hosts
limiters:
items:
$ref: '#/definitions/LimiterConfig'
type: array
x-go-name: Limiters
log:
$ref: '#/definitions/LogConfig'
metrics:
@ -351,6 +356,15 @@ definitions:
$ref: '#/definitions/Duration'
type: object
x-go-package: github.com/go-gost/x/config
LimiterConfig:
properties:
name:
type: string
x-go-name: Name
rate:
$ref: '#/definitions/RateLimiterConfig'
type: object
x-go-package: github.com/go-gost/x/config
ListenerConfig:
properties:
auth:
@ -469,6 +483,21 @@ definitions:
x-go-name: Addr
type: object
x-go-package: github.com/go-gost/x/config
RateLimiterConfig:
properties:
file:
$ref: '#/definitions/FileLoader'
limits:
items:
type: string
type: array
x-go-name: Limits
redis:
$ref: '#/definitions/RedisLoader'
reload:
$ref: '#/definitions/Duration'
type: object
x-go-package: github.com/go-gost/x/config
RecorderConfig:
properties:
file:
@ -597,6 +626,9 @@ definitions:
interface:
type: string
x-go-name: Interface
limiter:
type: string
x-go-name: Limiter
listener:
$ref: '#/definitions/ListenerConfig'
metadata:
@ -674,7 +706,7 @@ paths:
- '[]'
summary: Get current config.
tags:
- ConfigManagement
- Config
post:
operationId: saveConfigRequest
parameters:
@ -691,7 +723,7 @@ paths:
- '[]'
summary: Save current config to file (gost.yaml or gost.json).
tags:
- ConfigManagement
- Config
/config/admissions:
post:
operationId: createAdmissionRequest
@ -709,7 +741,7 @@ paths:
- '[]'
summary: Create a new admission, the name of admission must be unique in admission list.
tags:
- ConfigManagement
- Admission
/config/admissions/{admission}:
delete:
operationId: deleteAdmissionRequest
@ -727,7 +759,7 @@ paths:
- '[]'
summary: Delete admission by name.
tags:
- ConfigManagement
- Admission
put:
operationId: updateAdmissionRequest
parameters:
@ -749,7 +781,7 @@ paths:
- '[]'
summary: Update admission by name, the admission must already exist.
tags:
- ConfigManagement
- Admission
/config/authers:
post:
operationId: createAutherRequest
@ -767,7 +799,7 @@ paths:
- '[]'
summary: Create a new auther, the name of the auther must be unique in auther list.
tags:
- ConfigManagement
- Auther
/config/authers/{auther}:
delete:
operationId: deleteAutherRequest
@ -785,7 +817,7 @@ paths:
- '[]'
summary: Delete auther by name.
tags:
- ConfigManagement
- Auther
put:
operationId: updateAutherRequest
parameters:
@ -807,7 +839,7 @@ paths:
- '[]'
summary: Update auther by name, the auther must already exist.
tags:
- ConfigManagement
- Auther
/config/bypasses:
post:
operationId: createBypassRequest
@ -825,7 +857,7 @@ paths:
- '[]'
summary: Create a new bypass, the name of bypass must be unique in bypass list.
tags:
- ConfigManagement
- Bypass
/config/bypasses/{bypass}:
delete:
operationId: deleteBypassRequest
@ -843,7 +875,7 @@ paths:
- '[]'
summary: Delete bypass by name.
tags:
- ConfigManagement
- Bypass
put:
operationId: updateBypassRequest
parameters:
@ -865,7 +897,7 @@ paths:
- '[]'
summary: Update bypass by name, the bypass must already exist.
tags:
- ConfigManagement
- Bypass
/config/chains:
post:
operationId: createChainRequest
@ -883,7 +915,7 @@ paths:
- '[]'
summary: Create a new chain, the name of chain must be unique in chain list.
tags:
- ConfigManagement
- Chain
/config/chains/{chain}:
delete:
operationId: deleteChainRequest
@ -901,7 +933,7 @@ paths:
- '[]'
summary: Delete chain by name.
tags:
- ConfigManagement
- Chain
put:
operationId: updateChainRequest
parameters:
@ -923,7 +955,7 @@ paths:
- '[]'
summary: Update chain by name, the chain must already exist.
tags:
- ConfigManagement
- Chain
/config/hosts:
post:
operationId: createHostsRequest
@ -941,7 +973,7 @@ paths:
- '[]'
summary: Create a new hosts, the name of the hosts must be unique in hosts list.
tags:
- ConfigManagement
- Hosts
/config/hosts/{hosts}:
delete:
operationId: deleteHostsRequest
@ -959,7 +991,7 @@ paths:
- '[]'
summary: Delete hosts by name.
tags:
- ConfigManagement
- Hosts
put:
operationId: updateHostsRequest
parameters:
@ -981,7 +1013,64 @@ paths:
- '[]'
summary: Update hosts by name, the hosts must already exist.
tags:
- ConfigManagement
- Hosts
/config/limiters:
post:
operationId: createLimiterRequest
parameters:
- in: body
name: data
schema:
$ref: '#/definitions/LimiterConfig'
x-go-name: Data
responses:
"200":
$ref: '#/responses/createLimiterResponse'
security:
- basicAuth:
- '[]'
summary: Create a new limiter, the name of limiter must be unique in limiter list.
tags:
- Limiter
/config/limiters/{limiter}:
delete:
operationId: deleteLimiterRequest
parameters:
- in: path
name: Limiter
required: true
type: string
responses:
"200":
$ref: '#/responses/deleteLimiterResponse'
security:
- basicAuth:
- '[]'
summary: Delete limiter by name.
tags:
- Limiter
put:
operationId: updateLimiterRequest
parameters:
- in: path
name: limiter
required: true
type: string
x-go-name: Limiter
- in: body
name: data
schema:
$ref: '#/definitions/LimiterConfig'
x-go-name: Data
responses:
"200":
$ref: '#/responses/updateLimiterResponse'
security:
- basicAuth:
- '[]'
summary: Update limiter by name, the limiter must already exist.
tags:
- Limiter
/config/resolvers:
post:
operationId: createResolverRequest
@ -999,7 +1088,7 @@ paths:
- '[]'
summary: Create a new resolver, the name of the resolver must be unique in resolver list.
tags:
- ConfigManagement
- Resolver
/config/resolvers/{resolver}:
delete:
operationId: deleteResolverRequest
@ -1017,7 +1106,7 @@ paths:
- '[]'
summary: Delete resolver by name.
tags:
- ConfigManagement
- Resolver
put:
operationId: updateResolverRequest
parameters:
@ -1039,7 +1128,7 @@ paths:
- '[]'
summary: Update resolver by name, the resolver must already exist.
tags:
- ConfigManagement
- Resolver
/config/services:
post:
operationId: createServiceRequest
@ -1057,7 +1146,7 @@ paths:
- '[]'
summary: Create a new service, the name of the service must be unique in service list.
tags:
- ConfigManagement
- Service
/config/services/{service}:
delete:
operationId: deleteServiceRequest
@ -1075,7 +1164,7 @@ paths:
- '[]'
summary: Delete service by name.
tags:
- ConfigManagement
- Service
put:
operationId: updateServiceRequest
parameters:
@ -1097,7 +1186,7 @@ paths:
- '[]'
summary: Update service by name, the service must already exist.
tags:
- ConfigManagement
- Service
produces:
- application/json
responses:
@ -1131,6 +1220,12 @@ responses:
Data: {}
schema:
$ref: '#/definitions/Response'
createLimiterResponse:
description: successful operation.
headers:
Data: {}
schema:
$ref: '#/definitions/Response'
createResolverResponse:
description: successful operation.
headers:
@ -1173,6 +1268,12 @@ responses:
Data: {}
schema:
$ref: '#/definitions/Response'
deleteLimiterResponse:
description: successful operation.
headers:
Data: {}
schema:
$ref: '#/definitions/Response'
deleteResolverResponse:
description: successful operation.
headers:
@ -1227,6 +1328,12 @@ responses:
Data: {}
schema:
$ref: '#/definitions/Response'
updateLimiterResponse:
description: successful operation.
headers:
Data: {}
schema:
$ref: '#/definitions/Response'
updateResolverResponse:
description: successful operation.
headers: