Documentation ¶
Index ¶
- Variables
- func MakeCountEndpoint(s Service) endpoint.Endpoint
- func MakeGetEndpoint(s Service) endpoint.Endpoint
- func MakeHTTPHandler(ctx context.Context, e Endpoints, imagePath string, logger log.Logger) http.Handler
- func MakeHealthEndpoint(s Service) endpoint.Endpoint
- func MakeListEndpoint(s Service) endpoint.Endpoint
- func MakeTagsEndpoint(s Service) endpoint.Endpoint
- type Endpoints
- type Middleware
- type Service
- type Sock
Constants ¶
This section is empty.
Variables ¶
var ErrNotFound = errors.New("not found")
ErrNotFound is returned when there is no sock for a given ID.
Functions ¶
func MakeCountEndpoint ¶
MakeCountEndpoint returns an endpoint via the given service.
func MakeGetEndpoint ¶
MakeGetEndpoint returns an endpoint via the given service.
func MakeHTTPHandler ¶
func MakeHTTPHandler(ctx context.Context, e Endpoints, imagePath string, logger log.Logger) http.Handler
MakeHTTPHandler mounts the endpoints into a REST-y HTTP handler.
func MakeHealthEndpoint ¶
MakeHealthEndpoint returns current health of the given service.
func MakeListEndpoint ¶
MakeListEndpoint returns an endpoint via the given service.
func MakeTagsEndpoint ¶
MakeTagsEndpoint returns an endpoint via the given service.
Types ¶
type Endpoints ¶
type Endpoints struct { ListEndpoint endpoint.Endpoint CountEndpoint endpoint.Endpoint GetEndpoint endpoint.Endpoint TagsEndpoint endpoint.Endpoint HealthEndpoint endpoint.Endpoint }
Endpoints collects the endpoints that comprise the Service.
func MakeEndpoints ¶
MakeEndpoints returns an Endpoints structure, where each endpoint is backed by the given service.
type Middleware ¶
Middleware decorates a service.
func LoggingMiddleware ¶
func LoggingMiddleware(logger log.Logger) Middleware
LoggingMiddleware logs method calls, parameters, results, and elapsed time.
type Service ¶
type Service interface { List(tags []string, order string, pageNum, pageSize int) []Sock // GET /catalogue Count(tags []string) int // GET /catalogue/size Get(id string) (Sock, error) // GET /catalogue/{id} Tags() []string // GET /tags }
Service is the catalogue service, providing read operations on a saleable catalogue of sock products.
func NewFixedService ¶
NewFixedService returns a simple implementation of the Service interface, fixed over a predefined set of socks and tags. In a real service you'd probably construct this with a database handle to your socks DB, etc.