Help us shape the future of Go! Take the 2026 Go Developer Survey

httpsvr

package
v1.1.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 26, 2022 License: MIT Imports: 34 Imported by: 0

Documentation

Index

Constants

View Source
const (
	ConstPromMetricUrlPath      = "/metrics"
	ConstHttpHealthCheckUrlPath = "/health_check"
	ConstRootUrlPath            = "/"
	ConstSwaggerUrlPath         = "/docs/*any"
)

Variables

View Source
var RouteNoRegisteredError = errors.New("router group not registered")

Functions

This section is empty.

Types

type BaseHttpService

type BaseHttpService struct {
	// contains filtered or unexported fields
}

func NewBaseHttpService

func NewBaseHttpService(f func(*gin.RouterGroup)) *BaseHttpService

func (*BaseHttpService) RoutesRegistry

func (bhs *BaseHttpService) RoutesRegistry(ge *GinEngine)

type GinEngine

type GinEngine struct {
	RootRouteGroup *gin.RouterGroup
	// contains filtered or unexported fields
}

func NewGinEngine

func NewGinEngine(name string, engineConf *GinEngineConf, httpConf *HttpServerConf, middlewareOpts *GinEngineMiddlewareOpts) *GinEngine

func (*GinEngine) Close

func (ge *GinEngine) Close()

func (*GinEngine) GetGrpcServer added in v1.1.0

func (ge *GinEngine) GetGrpcServer() *grpc.Server

func (*GinEngine) GetHttpRegisteredGroup added in v1.1.0

func (ge *GinEngine) GetHttpRegisteredGroup(path string) (*gin.RouterGroup, error)

GetHttpRegisteredGroup 获得已经注册的路由组

func (*GinEngine) GrpcServiceRegistry added in v1.1.0

func (ge *GinEngine) GrpcServiceRegistry(services ...GrpcRegisteredServiceItem)

GrpcServiceRegistry 注册服务到 GinEngine

func (*GinEngine) HttpMiddlewareRegistry added in v1.1.0

func (ge *GinEngine) HttpMiddlewareRegistry(middleware ...gin.HandlerFunc)

func (*GinEngine) HttpRouteGroupRegistry added in v1.1.0

func (ge *GinEngine) HttpRouteGroupRegistry(path string, baseGroup *gin.RouterGroup)

HttpRouteGroupRegistry 注册一个路由组

func (*GinEngine) HttpServiceRegistry added in v1.1.0

func (ge *GinEngine) HttpServiceRegistry(services ...httpServiceInterface)

HttpServiceRegistry 注册服务到 GinEngine

func (*GinEngine) IsReleaseMode

func (ge *GinEngine) IsReleaseMode() bool

func (*GinEngine) RunAndService

func (ge *GinEngine) RunAndService()

type GinEngineConf

type GinEngineConf struct {
	FeatureOpts     GinEngineFeatureOpts
	NoMatchHandlers GinEngineNoMatchHandlers
}

func NewStrictRestApiGinEngineConf

func NewStrictRestApiGinEngineConf() *GinEngineConf

func NewStrictRestApiReleaseModeGinEngineConf

func NewStrictRestApiReleaseModeGinEngineConf() *GinEngineConf

type GinEngineFeatureOpts

type GinEngineFeatureOpts struct {
	EnableGinRedirectTrailingSlash bool // 内部 301 路径跳转,如果当前路径的处理函数不存在,但是路径+'/'的处理函数存在,则允许进行重定向
	EnableGinRedirectFixedPath     bool // 允许修复当前请求路径,如/FOO和/..//Foo会被修复为/foo,并进行重定向,默认为 false。
	EnableHttpHealthCheck          bool // 健康检查
	EnablePrometheusMetrics        bool // 记录 Prometheus 数据
	EnablePrometheusRoute          bool // 能够访问 Prometheus 数据
	EnableSwagger                  bool // Swagger
	EnableHttpPProf                bool // running time debug
	EnableGrpc                     bool // 启动 grpc over http
}

type GinEngineMiddlewareOpts added in v1.1.0

type GinEngineMiddlewareOpts struct {
	// contains filtered or unexported fields
}

type GinEngineNoMatchHandlers

type GinEngineNoMatchHandlers = struct {
	NoRouteHandlers  []gin.HandlerFunc
	NoMethodHandlers []gin.HandlerFunc
}

type GinHttpProfService

type GinHttpProfService struct {
}

func NewGinHttpProfService

func NewGinHttpProfService() *GinHttpProfService

func (GinHttpProfService) RoutesRegistry

func (gp GinHttpProfService) RoutesRegistry(ge *GinEngine)

type GrpcRegisteredServiceItem added in v1.1.0

type GrpcRegisteredServiceItem struct {
	ServiceDesc   *grpc.ServiceDesc
	ServiceServer interface{}
}

type HttpServerConf

type HttpServerConf struct {
	Address           string `json:"address" yaml:"address"`
	Port              uint16 `json:"port" yaml:"port"`
	ReadTimeout       uint32 `json:"read_timeout,omitempty" yaml:"read_timeout,omitempty"`
	WriteTimeout      uint32 `json:"write_timeout,omitempty" yaml:"write_timeout,omitempty"`
	ReadHeaderTimeout uint32 `json:"read_header_timeout,omitempty" yaml:"read_header_timeout,omitempty"`
	DisableKeepalive  bool   `json:"disable_keepalive,omitempty" yaml:"disable_keepalive,omitempty"`
}

type PromOpts

type PromOpts struct {
	ExcludeRegexAppName   string
	ExcludeRegexStatus    string
	ExcludeRegexUrlPath   string
	ExcludeRegexMethod    string
	ExcludeRegexClientIp  string
	UrlPathLabelMappingFn requestLabelMappingFn
}

PromOpts represents the Prometheus middleware Options. It is used for filtering labels by regex.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL