Documentation
¶
Index ¶
- Constants
- func NewMappingSet() *types.Set[*Mapping]
- func NewRoutingPolicySet() *types.Set[*RoutingPolicy]
- type CreateMappingRequest
- type CreateRoutingPolicyRequest
- type DeleteMappingRequest
- type GetMappingRequest
- type GetRoutingPolicyRequest
- type Mapping
- type MappingResponse
- type MappingSet
- type MappingSetResponse
- type ResolveRouteRequest
- type RoutingPolicy
- type RoutingPolicyResponse
- type RoutingPolicySet
- type RoutingStrategy
- type SearchMappingRequest
- type Service
- type UpdateMappingRequest
Constants ¶
View Source
const (
APP_NAME = "proxy_policy"
)
Variables ¶
This section is empty.
Functions ¶
func NewMappingSet ¶
func NewRoutingPolicySet ¶
func NewRoutingPolicySet() *types.Set[*RoutingPolicy]
Types ¶
type CreateMappingRequest ¶
type CreateMappingRequest struct {
Username string `json:"username"`
ServiceName string `json:"service_name"`
BackendId string `json:"backend_id"`
BackendUsername string `json:"backend_username"`
BackendPassword string `json:"backend_password"`
BackendDatabase string `json:"backend_database"`
ReadOnly bool `json:"read_only"`
Priority int `json:"priority"`
Enabled bool `json:"enabled"`
Description string `json:"description"`
}
func NewCreateMappingRequest ¶
func NewCreateMappingRequest() *CreateMappingRequest
func (*CreateMappingRequest) Validate ¶
func (r *CreateMappingRequest) Validate() error
type CreateRoutingPolicyRequest ¶
type CreateRoutingPolicyRequest struct {
PolicyId string `json:"policy_id"`
Username string `json:"username"`
ServiceName string `json:"service_name"`
RoutingStrategy string `json:"routing_strategy"`
RateLimit int `json:"rate_limit"`
Timeout int `json:"timeout"`
RetryCount int `json:"retry_count"`
Enabled bool `json:"enabled"`
Metadata map[string]interface{} `json:"metadata"`
}
func NewCreateRoutingPolicyRequest ¶
func NewCreateRoutingPolicyRequest() *CreateRoutingPolicyRequest
func (*CreateRoutingPolicyRequest) Validate ¶
func (r *CreateRoutingPolicyRequest) Validate() error
type DeleteMappingRequest ¶
type DeleteMappingRequest struct {
GetMappingRequest
}
func NewDeleteMappingRequest ¶
func NewDeleteMappingRequest(id int64) *DeleteMappingRequest
type GetMappingRequest ¶
type GetMappingRequest struct {
Id int64 `json:"id"`
}
func NewGetMappingRequest ¶
func NewGetMappingRequest(id int64) *GetMappingRequest
type GetRoutingPolicyRequest ¶
type GetRoutingPolicyRequest struct {
PolicyId string `json:"policy_id"`
}
func NewGetRoutingPolicyRequest ¶
func NewGetRoutingPolicyRequest(policyId string) *GetRoutingPolicyRequest
type Mapping ¶
type Mapping struct {
Id int64 `json:"id" gorm:"column:id;primaryKey"`
Username string `json:"username" gorm:"column:username"`
ServiceName string `json:"service_name" gorm:"column:service_name"`
BackendId string `json:"backend_id" gorm:"column:backend_id"`
BackendUsername string `json:"backend_username" gorm:"column:backend_username"`
BackendPassword string `json:"-" gorm:"column:backend_password"`
BackendDatabase string `json:"backend_database" gorm:"column:backend_database"`
ReadOnly bool `json:"read_only" gorm:"column:read_only"`
Priority int `json:"priority" gorm:"column:priority"`
Enabled bool `json:"enabled" gorm:"column:enabled"`
Description string `json:"description" gorm:"column:description"`
CreatedAt time.Time `json:"created_at" gorm:"column:created_at"`
UpdatedAt time.Time `json:"updated_at" gorm:"column:updated_at"`
}
Mapping 用户到后端的映射关系
func NewMapping ¶
func NewMapping() *Mapping
type MappingResponse ¶
type MappingResponse struct {
Data *Mapping `json:"data"`
}
MappingResponse API响应格式
type MappingSet ¶
func (*MappingSet) String ¶
func (s *MappingSet) String() string
type MappingSetResponse ¶
MappingSetResponse 列表响应
type ResolveRouteRequest ¶
type ResolveRouteRequest struct {
Username string `json:"username"`
ServiceName string `json:"service_name"`
}
func NewResolveRouteRequest ¶
func NewResolveRouteRequest(username, serviceName string) *ResolveRouteRequest
func (*ResolveRouteRequest) Validate ¶
func (r *ResolveRouteRequest) Validate() error
type RoutingPolicy ¶
type RoutingPolicy struct {
Id int64 `json:"id" gorm:"column:id;primaryKey"`
PolicyId string `json:"policy_id" gorm:"column:policy_id;uniqueIndex"`
Username string `json:"username" gorm:"column:username"`
ServiceName string `json:"service_name" gorm:"column:service_name"`
RoutingStrategy string `json:"routing_strategy" gorm:"column:routing_strategy"`
RateLimit int `json:"rate_limit" gorm:"column:rate_limit"`
Timeout int `json:"timeout" gorm:"column:timeout"`
RetryCount int `json:"retry_count" gorm:"column:retry_count"`
Enabled bool `json:"enabled" gorm:"column:enabled"`
Metadata map[string]interface{} `json:"metadata" gorm:"column:metadata;type:json"`
CreatedAt time.Time `json:"created_at" gorm:"column:created_at"`
UpdatedAt time.Time `json:"updated_at" gorm:"column:updated_at"`
}
RoutingPolicy 路由策略配置
func NewRoutingPolicy ¶
func NewRoutingPolicy() *RoutingPolicy
func (*RoutingPolicy) Scan ¶
func (p *RoutingPolicy) Scan(value interface{}) error
Scan 实现 Scanner 接口
func (*RoutingPolicy) String ¶
func (p *RoutingPolicy) String() string
func (*RoutingPolicy) TableName ¶
func (p *RoutingPolicy) TableName() string
type RoutingPolicyResponse ¶
type RoutingPolicyResponse struct {
Data *RoutingPolicy `json:"data"`
}
RoutingPolicyResponse API响应格式
type RoutingPolicySet ¶
type RoutingPolicySet struct {
*types.Set[*RoutingPolicy]
}
RoutingPolicySet 路由策略集合
func (*RoutingPolicySet) String ¶
func (s *RoutingPolicySet) String() string
type RoutingStrategy ¶
type RoutingStrategy string
RoutingStrategy 路由策略类型
const ( RoundRobin RoutingStrategy = "round_robin" Hash RoutingStrategy = "hash" ReadWriteSplit RoutingStrategy = "read_write_split" Static RoutingStrategy = "static" )
type SearchMappingRequest ¶
type SearchMappingRequest struct {
Username string `json:"username"`
ServiceName string `json:"service_name"`
BackendId string `json:"backend_id"`
Enabled *bool `json:"enabled"`
}
func NewSearchMappingRequest ¶
func NewSearchMappingRequest() *SearchMappingRequest
type Service ¶
type Service interface {
// 获取映射详情
GetMapping(context.Context, *GetMappingRequest) (*Mapping, error)
// 查询映射列表
SearchMapping(context.Context, *SearchMappingRequest) (*types.Set[*Mapping], error)
// 创建映射
CreateMapping(context.Context, *CreateMappingRequest) (*Mapping, error)
// 更新映射
UpdateMapping(context.Context, *UpdateMappingRequest) (*Mapping, error)
// 删除映射
DeleteMapping(context.Context, *DeleteMappingRequest) (*Mapping, error)
// 获取路由策略
GetRoutingPolicy(context.Context, *GetRoutingPolicyRequest) (*RoutingPolicy, error)
// 创建路由策略
CreateRoutingPolicy(context.Context, *CreateRoutingPolicyRequest) (*RoutingPolicy, error)
// 解析路由 - 根据用户和服务名获取对应的后端
ResolveRoute(context.Context, *ResolveRouteRequest) (*Mapping, error)
}
func GetService ¶
func GetService() Service
type UpdateMappingRequest ¶
type UpdateMappingRequest struct {
Id int64 `json:"id"`
BackendUsername *string `json:"backend_username"`
BackendPassword *string `json:"backend_password"`
BackendDatabase *string `json:"backend_database"`
ReadOnly *bool `json:"read_only"`
Priority *int `json:"priority"`
Enabled *bool `json:"enabled"`
Description *string `json:"description"`
}
func NewUpdateMappingRequest ¶
func NewUpdateMappingRequest(id int64) *UpdateMappingRequest
Click to show internal directories.
Click to hide internal directories.