httpapi

package
v0.1.0-beta.0 Latest Latest
Warning

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

Go to latest
Published: Jun 25, 2020 License: MIT Imports: 7 Imported by: 0

Documentation

Overview

Package httpapi provides common encoding and middleware for an HTTP API.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func ErrorResponse

func ErrorResponse(w http.ResponseWriter, err error)

ErrorResponse writes an error response. Domain errors are returned to the client. Any other errors, will resolve to 500 error response.

func GetToken

func GetToken(r *http.Request) *auth.Token

GetToken retrieves a Token from context.

func GetUserID

func GetUserID(r *http.Request) string

GetUserID retrieves a User ID from context.

func JSONResponse

func JSONResponse(w http.ResponseWriter, v interface{}, statusCode int)

JSONResponse writes a response body. If a struct is provided and we are unable to marshal it, we return an internal error.

func ToHandlerFunc

func ToHandlerFunc(jsonHandler JSONAPIHandler, successCode int) http.HandlerFunc

ToHandlerFunc adapts a JSONAPIHandler into net/http's HandlerFunc.

Types

type JSONAPIHandler

type JSONAPIHandler func(w http.ResponseWriter, r *http.Request) (interface{}, error)

JSONAPIHandler is an HTTP handler for a JSON API.

func AuthMiddleware

func AuthMiddleware(jsonHandler JSONAPIHandler, tokenSvc auth.TokenService, state auth.TokenState) JSONAPIHandler

AuthMiddleware validates an Authorization header if available.

func ErrorLoggingMiddleware

func ErrorLoggingMiddleware(jsonHandler JSONAPIHandler, source string, log log.Logger) JSONAPIHandler

ErrorLoggingMiddleware logs any errors that are returned before being parsed to an HTTP response.

Jump to

Keyboard shortcuts

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