Documentation ¶
Index ¶
Constants ¶
const ( // InternalErrorType type of common errors InternalErrorType = "INTERNAL" // GenericErrorType type of common errors GenericErrorType = "GENERIC" // ValidationErrorType type of common errors ValidationErrorType = "VALIDATION" )
Variables ¶
var ( // DefaultConfig for the API server DefaultConfig = Config{ Port: 8080, ReadHeaderTimeout: 10, ReadTimeout: 30, WriteTimeout: 60, Debug: true, AllowOrigins: []string{"*"}, BodyLimit: "512KB", BodyLimitSkipper: func(c echo.Context) bool { return strings.Contains(c.Path(), "/upload") || strings.HasPrefix(c.Path(), "/admin") }, } )
Functions ¶
Types ¶
type Config ¶
type Config struct { Debug bool // The port for the http server to listen on Port int // ReadHeaderTimeout is the amount of time allowed to read request headers. ReadHeaderTimeout int // ReadTimeout is the maximum duration for reading the entire request, including the body ReadTimeout int // WriteTimeout is the maximum duration before timing out writes of the response WriteTimeout int // CORS settings AllowOrigins []string // Maximum allowed size for a request body. ex: 512KB BodyLimit string // To skip the BodyLimit check. If not provided, skip when path contains `/upload` or has `/admin` prefix BodyLimitSkipper middleware.Skipper // The `Content-Security-Policy` header providing security against XSS and other code injection attacks. // Sample for production: `default-src 'self'` ContentSecurityPolicy string }
Config represents server specific config
type CustomBinder ¶
type CustomBinder struct {
// contains filtered or unexported fields
}
CustomBinder struct
func (*CustomBinder) Bind ¶
func (cb *CustomBinder) Bind(i interface{}, c echo.Context) error
Bind tries to bind request into interface, and if it does then validate it
type CustomValidator ¶
type CustomValidator struct {
V *validator.Validate
}
CustomValidator holds custom validator
func (*CustomValidator) Validate ¶
func (cv *CustomValidator) Validate(i interface{}) error
Validate validates the request
type ErrorHandler ¶
type ErrorHandler struct {
// contains filtered or unexported fields
}
ErrorHandler represents the custom http error handler
func NewErrorHandler ¶
func NewErrorHandler(e *echo.Echo) *ErrorHandler
NewErrorHandler returns the ErrorHandler instance
func (*ErrorHandler) Handle ¶
func (ce *ErrorHandler) Handle(err error, c echo.Context)
Handle is a centralized HTTP error handler.
type ErrorResponse ¶
type ErrorResponse struct {
Error *HTTPError `json:"error"`
}
ErrorResponse represents the error response swagger:model
type HTTPError ¶
type HTTPError struct { Code int `json:"code"` Type string `json:"type"` Message string `json:"message"` Internal error `json:"-"` }
HTTPError represents an error that occurred while handling a request
func NewHTTPError ¶
NewHTTPError creates a new HTTPError instance
func NewHTTPGenericError ¶
NewHTTPGenericError creates a new HTTPError instance for generic error
func NewHTTPInternalError ¶
NewHTTPInternalError creates a new HTTPError instance for internal error
func NewHTTPValidationError ¶
NewHTTPValidationError creates a new HTTPError instance for validation error
func (*HTTPError) MarshalJSON ¶
MarshalJSON modification
func (*HTTPError) SetInternal ¶
SetInternal sets actual internal error for more details