harmony

package module
v0.0.1 Latest Latest
Warning

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

Go to latest
Published: Jan 13, 2024 License: MIT Imports: 14 Imported by: 0

Documentation

Index

Constants

View Source
const (
	// HeaderContentType is the header key for Content-Type.
	HeaderContentType = "Content-Type"
	// HeaderVary is the header key for Vary.
	HeaderVary = "Vary"
	// HeaderAcceptEncoding is the header key for Accept-Encoding.
	HeaderAcceptEncoding = "Accept-Encoding"
	// HeaderContentLength is the header key for Content-Length.
	HeaderContentLength = "Content-Length"
	// HeaderContentEncoding is the header key for Content-Encoding.
	HeaderContentEncoding = "Content-Encoding"
)
View Source
const (
	// MIMEApplicationJSON is the MIME type for JSON.
	MIMEApplicationJSON = "application/json"
	// MIMEApplicationJSONCharsetUTF8 is the MIME type for JSON with charset=utf-8.
	MIMEApplicationJSONCharsetUTF8 = MIMEApplicationJSON + "; " + charsetUTF8
	// MIMETextPlain is the MIME type for plain text.
	MIMETextPlain = "text/plain"
	// MIMETextPlainCharsetUTF8 is the MIME type for plain text with charset=utf-8.
	MIMETextPlainCharsetUTF8 = MIMETextPlain + "; " + charsetUTF8
)

Variables

This section is empty.

Functions

This section is empty.

Types

type Binder

type Binder interface {
	// Bind binds the request body, path params and query params to the dest.
	Bind(ctx Context, dest any) error
	// BindJSON binds the request body to the dest.
	BindJSON(ctx Context, dest any) error
}

Binder is the interface that wraps the Bind and BindJSON method.

type Context

type Context interface {
	// Request returns the *http.Request object.
	Request() *http.Request

	// ResponseWriter returns the http.ResponseWriter object.
	ResponseWriter() http.ResponseWriter

	// Bind binds the request body into dest.
	Bind(dest any) error

	// JSON writes the response in JSON format.
	JSON(code int, body any) error

	// PathParams returns the path parameters of the request in map[string]string.
	PathParams() map[string]string

	// PathParam returns the path parameter of the request by key in string.
	PathParam(key string) string

	// PathParamInt returns the path parameter of the request by key in int.
	// If the value is not an integer, it will return an error.
	// Handle the error like strconv.Atoi.
	PathParamInt(key string) (int, error)

	// SetPathParam sets the path parameter of the request by key and value.
	SetPathParam(key, value string)

	// QueryString returns the query string of the request in string.
	QueryString(key string, defaultValue ...string) string

	// QueryInt returns the query parameter of the request by key in int.
	QueryInt(key string, defaultValue ...int) int

	// QueryFloat64 returns the query parameter of the request by key in float64.
	QueryFloat64(key string, defaultValue ...float64) float64

	// QueryBool returns the query parameter of the request by key in bool.
	QueryBool(key string, defaultValue ...bool) bool

	// SendStatus writes the response status code.
	SendStatus(code int) error

	// String writes the response in string format.
	String(code int, body string) error

	// Get returns the value in the context by key.
	Get(key string) any

	// Set sets the value in the context by key and value.
	Set(key string, value any)

	// SetResponseWriter sets the http.ResponseWriter.
	SetResponseWriter(w http.ResponseWriter)
	// contains filtered or unexported methods
}

Context is the interface for the Harmony context.

func NewContext

func NewContext(w http.ResponseWriter, r *http.Request, binder Binder) Context

NewContext returns a new Harmony Context.

type Group

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

Group is the interface for Harmony's Group.

func (*Group) Connect

func (g *Group) Connect(path string, handlerFunc HandlerFunc, middlewares ...MiddlewareFunc)

Connect adds a CONNECT route to Harmony's Group.

func (*Group) Delete

func (g *Group) Delete(path string, handlerFunc HandlerFunc, middlewares ...MiddlewareFunc)

Delete adds a DELETE route to Harmony's Group.

func (*Group) Get

func (g *Group) Get(path string, handlerFunc HandlerFunc, middlewares ...MiddlewareFunc)

Get adds a GET route to Harmony's Group.

func (*Group) Group

func (g *Group) Group(path string, middlewares ...MiddlewareFunc) *Group

Group creates a new Harmony subgroup in the current group

func (*Group) Head

func (g *Group) Head(path string, handlerFunc HandlerFunc, middlewares ...MiddlewareFunc)

Head adds a HEAD route to Harmony's Group.

func (*Group) Options

func (g *Group) Options(path string, handlerFunc HandlerFunc, middlewares ...MiddlewareFunc)

Options adds an OPTIONS route to Harmony's Group.

func (*Group) Patch

func (g *Group) Patch(path string, handlerFunc HandlerFunc, middlewares ...MiddlewareFunc)

Patch adds a PATCH route to Harmony's Group.

func (*Group) Post

func (g *Group) Post(path string, handlerFunc HandlerFunc, middlewares ...MiddlewareFunc)

Post adds a POST route to Harmony.

func (*Group) Put

func (g *Group) Put(path string, handlerFunc HandlerFunc, middlewares ...MiddlewareFunc)

Put adds a PUT route to Harmony's Group.

func (*Group) Use

func (g *Group) Use(middlewares ...MiddlewareFunc)

Use adds middlewares to the group.

type HTTPError

type HTTPError struct {
	Code    int
	Message string
}

HTTPError is the error returned by Harmony.

func NewHTTPError

func NewHTTPError(code int, message string) *HTTPError

NewHTTPError returns a new HTTP error.

func (*HTTPError) Error

func (e *HTTPError) Error() string

type HandlerFunc

type HandlerFunc func(ctx Context) error

HandlerFunc is the function signature used by all Harmony handlers.

type Harmony

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

Harmony is the interface for Harmony.

func New

func New() *Harmony

New returns a new instance of Harmony.

func (*Harmony) Connect

func (h *Harmony) Connect(path string, handlerFunc HandlerFunc, middlewares ...MiddlewareFunc)

Connect adds a CONNECT route to Harmony.

func (*Harmony) Delete

func (h *Harmony) Delete(path string, handlerFunc HandlerFunc, middlewares ...MiddlewareFunc)

Delete adds a DELETE route to Harmony.

func (*Harmony) Get

func (h *Harmony) Get(path string, handlerFunc HandlerFunc, middlewares ...MiddlewareFunc)

Get adds a GET route to Harmony.

func (*Harmony) GracefulShutdown

func (h *Harmony) GracefulShutdown() error

GracefulShutdown waits for SIGINT and gracefully shutdown the server.

func (*Harmony) Group

func (h *Harmony) Group(path string, middlewares ...MiddlewareFunc) *Group

Group creates a new Harmony group.

func (*Harmony) Head

func (h *Harmony) Head(path string, handlerFunc HandlerFunc, middlewares ...MiddlewareFunc)

Head adds a HEAD route to Harmony.

func (*Harmony) ListenAndServe

func (h *Harmony) ListenAndServe(port ...int) error

ListenAndServe starts the server.

func (*Harmony) Options

func (h *Harmony) Options(path string, handlerFunc HandlerFunc, middlewares ...MiddlewareFunc)

Options adds an OPTIONS route to Harmony.

func (*Harmony) Patch

func (h *Harmony) Patch(path string, handlerFunc HandlerFunc, middlewares ...MiddlewareFunc)

Patch adds a PATCH route to Harmony.

func (*Harmony) Post

func (h *Harmony) Post(path string, handlerFunc HandlerFunc, middlewares ...MiddlewareFunc)

Post adds a POST route to Harmony.

func (*Harmony) Put

func (h *Harmony) Put(path string, handlerFunc HandlerFunc, middlewares ...MiddlewareFunc)

Put adds a PUT route to Harmony.

func (*Harmony) ServeHTTP

func (h *Harmony) ServeHTTP(w http.ResponseWriter, r *http.Request)

ServeHTTP implements http.Handler.

func (*Harmony) Trace

func (h *Harmony) Trace(path string, handlerFunc HandlerFunc, middlewares ...MiddlewareFunc)

Trace adds a TRACE route to Harmony.

func (*Harmony) Use

func (h *Harmony) Use(middlewares ...MiddlewareFunc)

Use adds a middleware to Harmony.

type Map

type Map map[string]any

Map is a shortcut for map[string]any.

type MiddlewareFunc

type MiddlewareFunc func(next HandlerFunc) HandlerFunc

MiddlewareFunc is the function signature used by all Harmony middlewares.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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