kit: Index | Files

package addservice

import ""


Package Files

middleware.go service.go


var (
    // ErrTwoZeroes is an arbitrary business rule for the Add method.
    ErrTwoZeroes = errors.New("can't sum two zeroes")

    // ErrIntOverflow protects the Add method. We've decided that this error
    // indicates a misbehaving service and should count against e.g. circuit
    // breakers. So, we return it directly in endpoints, to illustrate the
    // difference. In a real service, this probably wouldn't be the case.
    ErrIntOverflow = errors.New("integer overflow")

    // ErrMaxSizeExceeded protects the Concat method.
    ErrMaxSizeExceeded = errors.New("result exceeds maximum size")

type Middleware Uses

type Middleware func(Service) Service

Middleware describes a service (as opposed to endpoint) middleware.

func InstrumentingMiddleware Uses

func InstrumentingMiddleware(ints, chars metrics.Counter) Middleware

InstrumentingMiddleware returns a service middleware that instruments the number of integers summed and characters concatenated over the lifetime of the service.

func LoggingMiddleware Uses

func LoggingMiddleware(logger log.Logger) Middleware

LoggingMiddleware takes a logger as a dependency and returns a ServiceMiddleware.

type Service Uses

type Service interface {
    Sum(ctx context.Context, a, b int) (int, error)
    Concat(ctx context.Context, a, b string) (string, error)

Service describes a service that adds things together.

func New Uses

func New(logger log.Logger, ints, chars metrics.Counter) Service

New returns a basic Service with all of the expected middlewares wired in.

func NewBasicService Uses

func NewBasicService() Service

NewBasicService returns a naïve, stateless implementation of Service.

Package addservice imports 4 packages (graph) and is imported by 3 packages. Updated 2017-07-29. Refresh now. Tools for package owners.