Documentation
¶
Index ¶
- type Config
- type Context
- type ContextKey
- type Handler
- type HandlerChain
- type HttpService
- type Metrics
- type MetricsProvider
- type Middleware
- type Result
- type ResultOption
- type Results
- func (r *Results) Abort() Result
- func (r *Results) Accepted(options ...ResultOption) Result
- func (r *Results) BadRequest(options ...ResultOption) Result
- func (r *Results) Bytes(body []byte) Result
- func (r *Results) Error(statusCode int, options ...ResultOption) Result
- func (r *Results) Json(body any) Result
- func (r *Results) NotFound(options ...ResultOption) Result
- func (r *Results) Ok(options ...ResultOption) Result
- func (r *Results) PlainText(body []byte) Result
- func (r *Results) Redirect(uri string) Result
- func (r *Results) Unauthorized(options ...ResultOption) Result
- type Route
- func (r *Route) HasDescription(description string) *Route
- func (r *Route) HasOperationId(operationId string) *Route
- func (r *Route) HasPathParameter(name string, description string) *Route
- func (r *Route) HasQueryParameter(name string, description string) *Route
- func (r *Route) HasRequestModel(model any) *Route
- func (r *Route) HasResponse(statusCode int) *Route
- func (r *Route) HasResponseModel(statusCode int, model any) *Route
- func (r *Route) HasSummary(summary string) *Route
- func (r *Route) HasTags(tags ...string) *Route
- func (r *Route) IsDeprecated() *Route
- type RouteOpenApiSpec
- type RouteOpenApiSpecRequest
- type RouteOpenApiSpecResponse
- type RouteParameterType
- type Router
- func (r *Router) GetHandlers() []Handler
- func (r *Router) GetMux() *http.ServeMux
- func (r *Router) GetPath() string
- func (r *Router) GetRoutes() []*Route
- func (r *Router) Group(path string) *Router
- func (r *Router) Route(pattern string, handlers ...Handler) *Route
- func (r *Router) Use(handlers ...Handler)
- type RouterParameter
- type RouterParameterValidator
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Config ¶
type Config struct {
Addr string `conf:"addr" default:":8080"`
CertString string `conf:"cert_string"`
KeyString string `conf:"key_string"`
ReadHeaderTimeout time.Duration `conf:"read_header_timeout" default:"5s"`
ReadTimeout time.Duration `conf:"read_timeout" default:"10s"`
WriteTimeout time.Duration `conf:"write_timeout" default:"10s"`
IdleTimeout time.Duration `conf:"idle_timeout" default:"120s"`
InitializationTimeout time.Duration `conf:"init_timeout" default:"25s"`
GracefulShutdownTimeout time.Duration `conf:"shutdown_timeout" default:"5s"`
SelfSigned bool `conf:"self_signed" default:"false"`
HealthCheckEnabled bool `conf:"health_check" default:"true"`
OpenApiEnabled bool `conf:"openapi" default:"true"`
ProfilingEnabled bool `conf:"profiling" default:"false"`
}
type Context ¶
type Context struct {
Request *http.Request
ResponseWriter http.ResponseWriter
Results Results
// contains filtered or unexported fields
}
func (*Context) UpdateContext ¶
type ContextKey ¶
type ContextKey string
type HandlerChain ¶
type HandlerChain []Handler
type HttpService ¶
type HttpService struct {
InnerServer *http.Server
InnerRouter *Router
InnerMetrics *Metrics
Config *Config
// contains filtered or unexported fields
}
func NewHttpService ¶
func NewHttpService( config *Config, router *Router, metricsProvider MetricsProvider, logger *logfx.Logger, ) *HttpService
func (*HttpService) Router ¶
func (hs *HttpService) Router() *Router
func (*HttpService) Server ¶
func (hs *HttpService) Server() *http.Server
type Metrics ¶
type Metrics struct {
RequestsTotal *prometheus.CounterVec
// contains filtered or unexported fields
}
func NewMetrics ¶
func NewMetrics(mp MetricsProvider) *Metrics
type MetricsProvider ¶
type MetricsProvider interface {
GetRegistry() *prometheus.Registry
}
type Middleware ¶
type Middleware func() Handler
type Result ¶
type Result struct {
InnerRedirectToUri string
results.Result
InnerBody []byte
InnerStatusCode int
}
func (Result) RedirectToUri ¶
func (Result) StatusCode ¶
func (Result) WithStatusCode ¶
type ResultOption ¶ added in v0.6.30
type ResultOption func(*Result)
Result Options.
func WithBody ¶ added in v0.6.30
func WithBody(body []byte) ResultOption
func WithJson ¶ added in v0.6.30
func WithJson(body any) ResultOption
func WithPlainText ¶ added in v0.6.30
func WithPlainText(body string) ResultOption
type Results ¶
type Results struct{}
Results With Options.
func (*Results) Accepted ¶ added in v0.6.30
func (r *Results) Accepted(options ...ResultOption) Result
func (*Results) BadRequest ¶
func (r *Results) BadRequest(options ...ResultOption) Result
func (*Results) NotFound ¶
func (r *Results) NotFound(options ...ResultOption) Result
func (*Results) Ok ¶
func (r *Results) Ok(options ...ResultOption) Result
func (*Results) Unauthorized ¶
func (r *Results) Unauthorized(options ...ResultOption) Result
type Route ¶
type Route struct {
Pattern *uris.Pattern
Parameters []RouterParameter
Handlers []Handler
MuxHandlerFunc func(http.ResponseWriter, *http.Request)
Spec RouteOpenApiSpec
}
func (*Route) HasDescription ¶
func (*Route) HasOperationId ¶
func (*Route) HasPathParameter ¶
func (*Route) HasQueryParameter ¶
func (*Route) HasRequestModel ¶
func (*Route) HasResponse ¶
func (*Route) HasSummary ¶
func (*Route) IsDeprecated ¶
type RouteOpenApiSpec ¶
type RouteOpenApiSpec struct {
OperationId string
Summary string
Description string
Tags []string
Requests []RouteOpenApiSpecRequest
Responses []RouteOpenApiSpecResponse
Deprecated bool
}
type RouteOpenApiSpecRequest ¶
type RouteOpenApiSpecRequest struct {
Model any
}
type RouteParameterType ¶ added in v0.6.17
type RouteParameterType int
const ( RouteParameterTypeHeader RouteParameterType = iota RouteParameterTypeQuery RouteParameterTypePath RouteParameterTypeBody )
type Router ¶
type Router struct {
// contains filtered or unexported fields
}
func (*Router) GetHandlers ¶
type RouterParameter ¶ added in v0.6.17
type RouterParameter struct {
Name string
Description string
Validators []RouterParameterValidator
Type RouteParameterType
IsRequired bool
}
type RouterParameterValidator ¶ added in v0.6.17
Source Files
¶
Click to show internal directories.
Click to hide internal directories.