aghhttp

package
v0.0.2 Latest Latest
Warning

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

Go to latest
Published: Oct 1, 2023 License: GPL-3.0 Imports: 9 Imported by: 0

Documentation

Overview

Package aghhttp provides some common methods to work with HTTP.

Index

Constants

View Source
const (
	SchemeHTTP  = "http"
	SchemeHTTPS = "https"
)

HTTP scheme constants.

View Source
const (
	HdrValApplicationJSON         = "application/json"
	HdrValStrictTransportSecurity = "max-age=31536000; includeSubDomains"
	HdrValTextPlain               = "text/plain"
)

HTTP header value constants.

View Source
const (
	// ErrorCodeTMP000 is the temporary error code used for all errors.
	ErrorCodeTMP000 = ""
)

ErrorCode constants.

TODO(a.garipov): Expand and document codes.

Variables

This section is empty.

Functions

func Error

func Error(r *http.Request, w http.ResponseWriter, code int, format string, args ...any)

Error writes formatted message to w and also logs it.

func OK

func OK(w http.ResponseWriter)

OK responds with word OK.

func UserAgent

func UserAgent() (ua string)

UserAgent returns the ID of the service as a User-Agent string. It can also be used as the value of the Server HTTP header.

func WriteJSONResponse

func WriteJSONResponse(w http.ResponseWriter, r *http.Request, code int, resp any)

WriteJSONResponse writes headers with the code, encodes resp into w, and logs any errors it encounters. r is used to get additional information from the request.

func WriteJSONResponseError

func WriteJSONResponseError(w http.ResponseWriter, r *http.Request, err error)

WriteJSONResponseError encodes err as a JSON error into w, and logs any errors it encounters. r is used to get additional information from the request.

func WriteJSONResponseOK

func WriteJSONResponseOK(w http.ResponseWriter, r *http.Request, v any)

WriteJSONResponseOK writes headers with the code 200 OK, encodes v into w, and logs any errors it encounters. r is used to get additional information from the request.

func WriteTextPlainDeprecated

func WriteTextPlainDeprecated(w http.ResponseWriter, r *http.Request) (isPlainText bool)

WriteTextPlainDeprecated responds to the request with a message about deprecation and removal of a plain-text API if the request is made with the "text/plain" content-type.

Types

type ErrorCode

type ErrorCode string

ErrorCode is the error code as used by the HTTP API. See the ErrorCode definition in the OpenAPI specification.

type HTTPAPIErrorResp

type HTTPAPIErrorResp struct {
	Code ErrorCode `json:"code"`
	Msg  string    `json:"msg"`
}

HTTPAPIErrorResp is the error response as used by the HTTP API. See the BadRequestResp, InternalServerErrorResp, and similar objects in the OpenAPI specification.

type JSONDuration

type JSONDuration time.Duration

JSONDuration is a time.Duration that can be decoded from JSON and encoded into JSON according to our API conventions.

func (JSONDuration) MarshalJSON

func (d JSONDuration) MarshalJSON() (b []byte, err error)

MarshalJSON implements the json.Marshaler interface for JSONDuration. err is always nil.

func (*JSONDuration) UnmarshalJSON

func (d *JSONDuration) UnmarshalJSON(b []byte) (err error)

UnmarshalJSON implements the json.Marshaler interface for *JSONDuration.

type JSONTime

type JSONTime time.Time

JSONTime is a time.Time that can be decoded from JSON and encoded into JSON according to our API conventions.

func (JSONTime) MarshalJSON

func (t JSONTime) MarshalJSON() (b []byte, err error)

MarshalJSON implements the json.Marshaler interface for JSONTime. err is always nil.

func (*JSONTime) UnmarshalJSON

func (t *JSONTime) UnmarshalJSON(b []byte) (err error)

UnmarshalJSON implements the json.Marshaler interface for *JSONTime.

type RegisterFunc

type RegisterFunc func(method, url string, handler http.HandlerFunc)

RegisterFunc is the function that sets the handler to handle the URL for the method.

TODO(e.burkov, a.garipov): Get rid of it.

Jump to

Keyboard shortcuts

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