api

package
v0.0.0-...-7627a42 Latest Latest
Warning

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

Go to latest
Published: Aug 23, 2023 License: MPL-2.0 Imports: 22 Imported by: 0

Documentation

Index

Constants

View Source
const (
	ErrCodeMethodAndPathNotFound               = "method_and_path_not_found"
	ErrCodeRequiredBodyMissed                  = "required_body_missed"
	ErrCodeRequiredBodyParseError              = "required_body_parse_error"
	ErrCodeRequiredBodyParameterMissed         = "required_body_parameter_missed"
	ErrCodeRequiredBodyParameterInvalidValue   = "required_body_parameter_invalid_value"
	ErrCodeRequiredPathParameterMissed         = "required_path_parameter_missed"
	ErrCodeRequiredPathParameterInvalidValue   = "required_path_parameter_invalid_value"
	ErrCodeRequiredQueryParameterMissed        = "required_query_parameter_missed"
	ErrCodeRequiredQueryParameterInvalidValue  = "required_query_parameter_invalid_value"
	ErrCodeRequiredCookieParameterMissed       = "required_cookie_parameter_missed"
	ErrCodeRequiredCookieParameterInvalidValue = "required_cookie_parameter_invalid_value"
	ErrCodeRequiredHeaderMissed                = "required_header_missed"
	ErrCodeRequiredHeaderInvalidValue          = "required_header_invalid_value"

	ErrCodeSecRequirementsFailed = "required_security_requirements_failed"

	ErrCodeUnknownParameterFound = "unknown_parameter_found"

	ErrCodeUnknownValidationError = "unknown_validation_error"
)

Variables

View Source
var (
	ErrAuthHeaderMissed = errors.New("missing Authorization header")
	ErrAPITokenMissed   = errors.New("missing API keys for authorization")
)
View Source
var (
	ErrMethodAndPathNotFound = errors.New("method and path are not found")

	ErrRequiredBodyIsMissing    = errors.New("required body is missing")
	ErrMissedRequiredParameters = errors.New("required parameters missed")
)

Functions

func Handlers

func Handlers(lock *sync.RWMutex, cfg *config.APIFWConfigurationAPIMode, shutdown chan os.Signal, logger *logrus.Logger, storedSpecs database.DBOpenAPILoader) fasthttp.RequestHandler

Types

type APIMode

type APIMode struct {
	CustomRoute   *router.CustomRoute
	OpenAPIRouter *router.Router
	Log           *logrus.Logger
	Cfg           *config.APIFWConfigurationAPIMode
	ParserPool    *fastjson.ParserPool
}

func (*APIMode) APIModeHandler

func (s *APIMode) APIModeHandler(ctx *fasthttp.RequestCtx) error

APIModeHandler validates request and respond with 200, 403 (with error) or 500 status code

type Health

type Health struct {
	Build     string
	Logger    *logrus.Logger
	OpenAPIDB database.DBOpenAPILoader
}

func (*Health) Liveness

func (h *Health) Liveness(ctx *fasthttp.RequestCtx) error

Liveness returns simple status info if the service is alive. If the app is deployed to a Kubernetes cluster, it will also return pod, node, and namespace details via the Downward API. The Kubernetes environment variables need to be set within your Pod/Deployment manifest.

func (*Health) Readiness

func (h *Health) Readiness(ctx *fasthttp.RequestCtx) error

Readiness checks if the Fasthttp connection pool is ready to handle new requests.

type Response

type Response struct {
	Errors []*ValidationError `json:"errors"`
}

type ValidationError

type ValidationError struct {
	Message       string   `json:"message"`
	Code          string   `json:"code"`
	SchemaVersion string   `json:"schema_version,omitempty"`
	Fields        []string `json:"related_fields,omitempty"`
}

Jump to

Keyboard shortcuts

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