Documentation
¶
Index ¶
- Constants
- Variables
- func AddNewMapMethod(key string, methods []string)
- func BasicToken(next http.HandlerFunc) http.HandlerFunc
- func ContentExtractor(next http.HandlerFunc) http.HandlerFunc
- func CustomToken(next http.HandlerFunc) http.HandlerFunc
- func LogRequest(method, uri, eventID, form string, headers http.Header, rawBody []byte)
- func LogResponse(res *httptest.ResponseRecorder)
- func NewRequestBodyMiddleware(keyListMethods string) core.Middleware
- func RegisterNewAPIRequestValidator(v core.APIRequestValidator)
- func RegisterNewAPIResponseFormatter(f core.APIResponseFormatter)
- func RegisterNewAPIResponseWriter(f core.APIResponseWriter)
- func RequestHeaderJSON(next http.HandlerFunc) http.HandlerFunc
- func RequestHeaderSession(next http.HandlerFunc) http.HandlerFunc
- func ValidateBasicToken(token string) (client, secret string, valid bool)
- func ValidateCustomToken(token string) (json.RawMessage, bool)
- type Error
- type Header
- type Informative
- type JSONRequest
- type JSONResponse
- type JSONResponseInfo
- type RequestBasic
- func (request *RequestBasic) GetRequestBasicInfo() Response
- func (request *RequestBasic) GetRequestFullInfo() Response
- func (request *RequestBasic) GetSessionID() Response
- func (request *RequestBasic) GetTraceID() Response
- func (request *RequestBasic) GetUserID() Response
- func (request *RequestBasic) UnmarshalBody() Response
- type RequestValidator
- type Response
- func GetHeaderValueBool(key string, r *http.Request) (bool, Response)
- func GetHeaderValueFloat64(key string, r *http.Request) (float64, Response)
- func GetHeaderValueInt(key string, r *http.Request) (int, Response)
- func GetHeaderValueInt64(key string, r *http.Request) (int64, Response)
- func GetHeaderValueString(key string, r *http.Request) (string, Response)
- func GetQueryParamValueBool(queryParamName string, r *http.Request) (bool, Response)
- func GetQueryParamValueFloat64(queryParamName string, r *http.Request) (float64, Response)
- func GetQueryParamValueInt(queryParamName string, r *http.Request) (int, Response)
- func GetQueryParamValueInt64(queryParamName string, r *http.Request) (int64, Response)
- func GetQueryParamValueString(queryParamName string, r *http.Request) (string, Response)
- func GetRouteVarValueBool(urlVarName string, r *http.Request) (bool, Response)
- func GetRouteVarValueFloat64(urlVarName string, r *http.Request) (float64, Response)
- func GetRouteVarValueInt(urlVarName string, r *http.Request) (int, Response)
- func GetRouteVarValueInt64(urlVarName string, r *http.Request) (int64, Response)
- func GetRouteVarValueString(urlVarName string, r *http.Request) (string, Response)
- func UnmarshalBody(v interface{}, r *http.Request) Response
- type ResponseFormatter
- type ResponseWriter
- type Security
- type Success
- type ValidateCredentials
- type Warning
Constants ¶
const MethodGetKey = "get"
MethodGetKey GET http method to validate in NewRequestBodyMiddleware
const MethodPatchKey = "patch"
MethodPatchKey http method to validate in NewRequestBodyMiddleware
const MethodPostKey = "post"
MethodPostKey POST http method to validate in NewRequestBodyMiddleware
const MethodPutKey = "put"
MethodPutKey PUT http method to validate in NewRequestBodyMiddleware
const PPMethodsKey = "pp"
PPMethodsKey POST and PUT http methods to validate in NewRequestBodyMiddleware
const PPPGMethodsKey = "pppg"
PPPGMethodsKey POST, PUT, PATCH, and GET http methods to validate in NewRequestBodyMiddleware
const PPPMethodsKey = "ppp"
PPPMethodsKey POST, PUT and PATCH http methods to validate in NewRequestBodyMiddleware
Variables ¶
var ( // DefaultInvalidAuthHeaderMsg doc .. DefaultInvalidAuthHeaderMsg = "Invalid Authorization header!" DefaultUnauthorizedTitle = "Unauthorized!" DefaultBasicUnauthorizedMsg = "Invalid basic token" DefaultBearerUnauthorizedMsg = "Invalid bearer token" // CustomTokenPrefix doc... CustomTokenPrefix = "Bearer" DefaultCustomUnauthorizedMsg = fmt.Sprintf("Invalid %v token", CustomTokenPrefix) )
var ( // DefaultErrorTitle doc ... DefaultErrorTitle = "Error response!" // DefaultErrorMessage doc .. DefaultErrorMessage = "The service has not completed the operation!" // ErrorType error response type the value is "error" ErrorType core.ResponseType = "error" )
var ( // DefaultInfoTitle doc ... DefaultInfoTitle = "Information!" // DefaultInfoMessage doc .. DefaultInfoMessage = "The request has been successful!" // InformativeType info response type the value is "info" InformativeType core.ResponseType = "info" )
var ( // DefaultSuccessTitle doc ... DefaultSuccessTitle = "Successful!" // DefaultSuccessMessage doc .. DefaultSuccessMessage = "The request has been successful!" // SuccessType success response type the value is "success" SuccessType core.ResponseType = "success" )
var ( // DefaultWarningTitle doc ... DefaultWarningTitle = "Alert!" // DefaultWarningMessage doc .. DefaultWarningMessage = "The application has been successful but with potential problems!" // WarningType warning response type the value is "warning" WarningType core.ResponseType = "warning" )
var ( // Username basic authentication // Default: admin Username = "admin" // Password basic authentication // Default: admin Password = "admin" )
var CustomTokenValidatorFunc core.CustomTokenValidator
CustomTokenValidatorFunc define custom function to validate custom token
var EventIDHeaderKey = "EventID"
EventIDHeaderKey doc ..
var Fatal func(...interface{}) = log.Fatal
Fatal defines a function to print the fatal errors that occurred in this package, this function can be redefined. By default, this package implement the log.Fatal() function.
var GetRouteVar func(string, *http.Request) string = func(string, *http.Request) string { PrintError("Define a GetRouteVar function in this package") return "" }
GetRouteVar returns the route variables for the current request, if any define it as: api.GetRouteVar = myCustomGetRouteVarFunc
var MiddlewaresChain = core.MiddlewaresChain
MiddlewaresChain provides syntactic sugar to create a new middleware which will be the result of chaining the ones received as parameters
var PrintError func(...interface{}) = log.Print
PrintError defines a function to print the errors that occurred in this package, this function can be redefined. By default, this package implement the log.Print() function.
var Printf func(string, ...interface{}) = log.Printf
Printf defines a function to print the messages that occurred in this package, this function can be redefined. By default, this package implement the log.Printf() function.
var RequestBody = NewRequestBodyMiddleware(PPPGMethodsKey)
RequestBody doc ...
var SessionIDHeaderKey = "SessionID"
SessionIDHeaderKey doc ...
var UserIDHeaderKey = "UserID"
UserIDHeaderKey doc ...
Functions ¶
func AddNewMapMethod ¶
AddNewMapMethod add a new methods map to validate in a custom implementation of API-core package
func BasicToken ¶
func BasicToken(next http.HandlerFunc) http.HandlerFunc
BasicToken validate basic authentication token middleware.
func ContentExtractor ¶
func ContentExtractor(next http.HandlerFunc) http.HandlerFunc
ContentExtractor doc
func CustomToken ¶
func CustomToken(next http.HandlerFunc) http.HandlerFunc
CustomToken middleware ...
func LogRequest ¶
LogRequest doc ...
func NewRequestBodyMiddleware ¶
func NewRequestBodyMiddleware(keyListMethods string) core.Middleware
NewRequestBodyMiddleware doc ...
func RegisterNewAPIRequestValidator ¶
func RegisterNewAPIRequestValidator(v core.APIRequestValidator)
RegisterNewAPIRequestValidator register a new request validator to this implementation API-core package
func RegisterNewAPIResponseFormatter ¶
func RegisterNewAPIResponseFormatter(f core.APIResponseFormatter)
RegisterNewAPIResponseFormatter register a new custom API response formatter to this implementation of API-core package
func RegisterNewAPIResponseWriter ¶
func RegisterNewAPIResponseWriter(f core.APIResponseWriter)
RegisterNewAPIResponseWriter register a new custom API response writer to this implementation of API-core package
func RequestHeaderJSON ¶
func RequestHeaderJSON(next http.HandlerFunc) http.HandlerFunc
RequestHeaderJSON validate header Content-Type, is required and equal to application/json
func RequestHeaderSession ¶
func RequestHeaderSession(next http.HandlerFunc) http.HandlerFunc
RequestHeaderSession doc ...
func ValidateBasicToken ¶
ValidateBasicToken doc ...
func ValidateCustomToken ¶
func ValidateCustomToken(token string) (json.RawMessage, bool)
ValidateCustomToken doc ...
Types ¶
type Header ¶
type Header struct { DeviceUUID string `json:"uuid,omitempty"` DeviceType string `json:"device_type,omitempty"` DeviceBrand string `json:"device_brand,omitempty"` DeviceModel string `json:"device_model,omitempty"` OS string `json:"os,omitempty"` OSVersion string `json:"os_version,omitempty"` Lang string `json:"lang,omitempty"` Timezone string `json:"timezone,omitempty"` AppVersion string `json:"app_version,omitempty"` AppBuildVersion string `json:"app_build_version,omitempty"` AppName string `json:"app_name,omitempty"` Token string `json:"token,omitempty"` }
Header request info section fields for encrypted requests
type Informative ¶
type Informative core.ResponseData
Informative info response type the value is "info"
type JSONRequest ¶
type JSONRequest struct { Header Header `json:"header,omitempty"` Content json.RawMessage `json:"content"` }
JSONRequest struct used to parse the request content section
type JSONResponse ¶
type JSONResponse struct { Header JSONResponseInfo `json:"info"` Content interface{} `json:"content,omitempty"` }
JSONResponse response body structure contains the info section, with the response type and the messages for users and the content section, with the required data for the request
type JSONResponseInfo ¶
type JSONResponseInfo struct { Type core.ResponseType `json:"type"` Title string `json:"title,omitempty"` Message string `json:"message,omitempty"` Action string `json:"action,omitempty"` Token string `json:"session_id,omitempty"` Code string `json:"code,omitempty"` EventID string `json:"event_id,omitempty"` AdditionalInfo map[string]string `json:"additional_info,omitempty"` }
JSONResponseInfo response body info section
type RequestBasic ¶
type RequestBasic struct { JSONStruct interface{} SessionID string UserID string EventID string HTTPReq *http.Request }
RequestBasic doc ...
func (*RequestBasic) GetRequestBasicInfo ¶
func (request *RequestBasic) GetRequestBasicInfo() Response
GetRequestBasicInfo ..
func (*RequestBasic) GetRequestFullInfo ¶
func (request *RequestBasic) GetRequestFullInfo() Response
GetRequestFullInfo ..
func (*RequestBasic) GetSessionID ¶
func (request *RequestBasic) GetSessionID() Response
GetSessionID get session from user
func (*RequestBasic) GetUserID ¶
func (request *RequestBasic) GetUserID() Response
GetUserID get id user session
func (*RequestBasic) UnmarshalBody ¶
func (request *RequestBasic) UnmarshalBody() Response
UnmarshalBody doc ...
type RequestValidator ¶
type RequestValidator struct { }
RequestValidator implementation
func (RequestValidator) GetRouteVar ¶
func (v RequestValidator) GetRouteVar(key string, r *http.Request) string
GetRouteVar returns the route variables for the current request, if any
func (RequestValidator) ValidateRequest ¶
func (v RequestValidator) ValidateRequest(r *http.Request) (*core.RequestData, error)
ValidateRequest doc
type Response ¶
type Response interface {
Write(w http.ResponseWriter)
}
Response interface
func GetHeaderValueBool ¶
GetHeaderValueBool doc ...
func GetHeaderValueFloat64 ¶
GetHeaderValueFloat64 doc ...
func GetHeaderValueInt ¶
GetHeaderValueInt doc ...
func GetHeaderValueInt64 ¶
GetHeaderValueInt64 doc ...
func GetHeaderValueString ¶
GetHeaderValueString doc ...
func GetQueryParamValueBool ¶
GetQueryParamValueBool ...
func GetQueryParamValueFloat64 ¶
GetQueryParamValueFloat64 ...
func GetQueryParamValueInt ¶
GetQueryParamValueInt ...
func GetQueryParamValueInt64 ¶
GetQueryParamValueInt64 ...
func GetQueryParamValueString ¶
GetQueryParamValueString ...
func GetRouteVarValueBool ¶
GetRouteVarValueBool ...
func GetRouteVarValueFloat64 ¶
GetRouteVarValueFloat64 ...
func GetRouteVarValueInt ¶
GetRouteVarValueInt ...
func GetRouteVarValueInt64 ¶
GetRouteVarValueInt64 ...
func GetRouteVarValueString ¶
GetRouteVarValueString ...
func UnmarshalBody ¶
UnmarshalBody doc ...
type ResponseFormatter ¶
type ResponseFormatter struct{}
ResponseFormatter doc ...
func (ResponseFormatter) Format ¶
func (f ResponseFormatter) Format(data core.ResponseData) *core.ResponseFormatted
Format doc ...
type ResponseWriter ¶
type ResponseWriter struct{}
ResponseWriter doc ...
func (ResponseWriter) Write ¶
func (r ResponseWriter) Write(response *core.ResponseFormatted, w http.ResponseWriter)
Write doc ...
type Security ¶
type Security struct{}
Security core interface implement
func (*Security) ValidateBasicToken ¶
ValidateBasicToken doc ...
func (*Security) ValidateCustomToken ¶
func (s *Security) ValidateCustomToken(token string, validator core.CustomTokenValidator) (json.RawMessage, bool)
ValidateCustomToken doc ...
type ValidateCredentials ¶
ValidateCredentials func doc ...
var ValidateBasicAuthCredentialsFunc ValidateCredentials = validateCredentials
ValidateBasicAuthCredentialsFunc define custom function for validate basic authentication credential