apiframework

package
v0.28.6 Latest Latest
Warning

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

Go to latest
Published: Jun 9, 2026 License: Apache-2.0 Imports: 16 Imported by: 0

Documentation

Overview

Package apiframework provides HTTP request/response helpers for the Contenox API. For OpenAPI generation (tools/openapi-gen), place // @request pkg.Type after Decode and // @response pkg.Type after Encode; path and query documentation uses the description arguments on GetPathParam / GetQueryParam.

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrEncodeInvalidJSON      = errors.New("serverops: encoding failing, invalid json")
	ErrDecodeInvalidJSON      = errors.New("serverops: decoding failing, invalid json")
	ErrDecodeInvalidYAML      = errors.New("serverops: decoding failing, invalid yaml")
	ErrDecodeBase64           = errors.New("serverops: decoding failing, invalid base64 data")
	ErrUnsupportedContentType = errors.New("serverops: unsupported content type for decoding")
	ErrReadingRequestBody     = errors.New("serverops: failed to read request body")
	ErrMalformedContentType   = errors.New("serverops: malformed Content-Type header")
)
View Source
var (
	ErrInvalidParameterValue = errors.New("serverops: invalid parameter value type")
	ErrBadPathValue          = errors.New("serverops: bad path value")
	ErrBadQueryValue         = errors.New("serverops: bad query value")
	ErrImmutableModel        = errors.New("serverops: immutable model")
	ErrImmutableGroup        = errors.New("serverops: immutable group")
	ErrMissingParameter      = errors.New("serverops: missing parameter")
	ErrEmptyRequest          = errors.New("serverops: empty request")
	ErrEmptyRequestBody      = errors.New("serverops: empty request body")
	ErrInvalidChain          = errors.New("serverops: invalid chain definition")

	ErrBadRequest            = errors.New("serverops: bad request")
	ErrUnprocessableEntity   = errors.New("serverops: unprocessable entity")
	ErrNotFound              = errors.New("serverops: not found")
	ErrConflict              = errors.New("serverops: conflict")
	ErrForbidden             = errors.New("serverops: forbidden")
	ErrInternalServerError   = errors.New("serverops: internal server error")
	ErrUnsupportedMediaType  = errors.New("serverops: unsupported media type")
	ErrUnauthorized          = errors.New("serverops: unauthorized")
	ErrFileSizeLimitExceeded = errors.New("serverops: file size limit exceeded")
	ErrFileEmpty             = errors.New("serverops: file cannot be empty")
)

Functions

func Decode

func Decode[T any](r *http.Request) (T, error)

func Encode

func Encode[T any](w http.ResponseWriter, _ *http.Request, status int, v T) error

func EnforceToken added in v0.0.17

func EnforceToken(expectedToken string, next http.Handler) http.Handler

func Error

func Error(w http.ResponseWriter, r *http.Request, err error, op Operation) error

func GetErrorParam added in v0.28.2

func GetErrorParam(err error) string

func GetPathParam added in v0.28.2

func GetPathParam(r *http.Request, name string, description string) string

GetPathParam retrieves a URL path parameter by name and is used to enforce that all path parameters are documented for the OpenAPI generator.

func GetQueryParam added in v0.28.2

func GetQueryParam(r *http.Request, name, defaultValue, description string) string

GetQueryParam retrieves a URL query parameter by name. If the parameter is not present, it returns the provided defaultValue.

func HandleAPIError added in v0.0.4

func HandleAPIError(resp *http.Response) error

HandleAPIError processes OpenAI-compatible API error responses.

func IsAPIError added in v0.0.4

func IsAPIError(err error) (message, errorCode, errorType, param string, ok bool)

func RequestIDMiddleware

func RequestIDMiddleware(next http.Handler) http.Handler

func TokenMiddleware added in v0.0.17

func TokenMiddleware(next http.Handler) http.Handler

func TracingMiddleware added in v0.0.17

func TracingMiddleware(next http.Handler) http.Handler

TracingMiddleware extracts or generates trace and span IDs.

Types

type APIError added in v0.0.4

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

APIError wraps an error with parameter context for API responses.

func BadPathValue added in v0.28.2

func BadPathValue(param string, message ...string) *APIError

func BadRequest added in v0.28.2

func BadRequest(message ...string) *APIError

func Conflict added in v0.28.2

func Conflict(message ...string) *APIError

func FileEmpty added in v0.28.2

func FileEmpty(message ...string) *APIError

func FileSizeLimitExceeded added in v0.28.2

func FileSizeLimitExceeded(message ...string) *APIError

func Forbidden added in v0.28.2

func Forbidden(message ...string) *APIError

func ImmutableGroup added in v0.28.2

func ImmutableGroup(message ...string) *APIError

func ImmutableModel added in v0.28.2

func ImmutableModel(message ...string) *APIError

func InternalServerError added in v0.28.2

func InternalServerError(message ...string) *APIError

func InvalidChain added in v0.28.2

func InvalidChain(message ...string) *APIError

func InvalidParameterValue added in v0.28.2

func InvalidParameterValue(param string, message ...string) *APIError

func MissingParameter added in v0.28.2

func MissingParameter(param string, message ...string) *APIError

func NewAPIError added in v0.28.2

func NewAPIError(err error, message, param string) *APIError

func NotFound added in v0.28.2

func NotFound(message ...string) *APIError

func Unauthorized added in v0.28.2

func Unauthorized(message ...string) *APIError

func UnprocessableEntity added in v0.28.2

func UnprocessableEntity(message ...string) *APIError

func UnsupportedMediaType added in v0.28.2

func UnsupportedMediaType(message ...string) *APIError

func (*APIError) Code added in v0.28.2

func (e *APIError) Code() string

func (*APIError) Error added in v0.0.4

func (e *APIError) Error() string

func (*APIError) Param added in v0.28.2

func (e *APIError) Param() string

func (*APIError) Unwrap added in v0.28.2

func (e *APIError) Unwrap() error

type AboutServer added in v0.0.25

type AboutServer struct {
	Version        string `json:"version"`
	NodeInstanceID string `json:"nodeInstanceID"`
	Tenancy        string `json:"tenancy"`
}

type ContextKey added in v0.0.17

type ContextKey string
const (
	ContextTokenKey ContextKey = "token"
)

type MessageResponse added in v0.28.2

type MessageResponse struct {
	Message string `json:"message"`
}

MessageResponse is the preferred success body for simple endpoints that only need to return a human-readable message without introducing a route-specific DTO shape.

type Operation

type Operation uint16
const (
	CreateOperation Operation = iota
	GetOperation
	UpdateOperation
	DeleteOperation
	ListOperation
	AuthorizeOperation
	ServerOperation
	ExecuteOperation
)

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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