calculatorapi

package
v1.26.1 Latest Latest
Warning

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

Go to latest
Published: Apr 9, 2026 License: Apache-2.0 Imports: 11 Imported by: 0

Documentation

Index

Constants

View Source
const Hostname = "calculator.example"

Hostname is the default hostname of the microservice.

Variables

View Source
var (
	// HINT: Insert endpoint definitions here
	Arithmetic = Def{Method: "GET", Route: ":443/arithmetic"} // MARKER: Arithmetic
	Square     = Def{Method: "GET", Route: ":443/square"}     // MARKER: Square
	Distance   = Def{Method: "ANY", Route: ":443/distance"}   // MARKER: Distance
)

Functions

This section is empty.

Types

type ArithmeticIn

type ArithmeticIn struct {
	X  int    `json:"x,omitzero"`
	Op string `json:"op,omitzero"`
	Y  int    `json:"y,omitzero"`
}

ArithmeticIn are the input arguments of Arithmetic.

type ArithmeticOut

type ArithmeticOut struct {
	XEcho  int    `json:"xEcho,omitzero"`
	OpEcho string `json:"opEcho,omitzero"`
	YEcho  int    `json:"yEcho,omitzero"`
	Result int    `json:"result,omitzero"`
}

ArithmeticOut are the output arguments of Arithmetic.

type ArithmeticResponse

type ArithmeticResponse multicastResponse // MARKER: Arithmetic

ArithmeticResponse packs the response of Arithmetic.

func (*ArithmeticResponse) Get

func (_res *ArithmeticResponse) Get() (xEcho int, opEcho string, yEcho int, result int, err error)

Get unpacks the return arguments of Arithmetic.

type Client

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

Client is a lightweight proxy for making unicast calls to the microservice.

func NewClient

func NewClient(caller service.Publisher) Client

NewClient creates a new unicast client proxy to the microservice.

func (Client) Arithmetic

func (_c Client) Arithmetic(ctx context.Context, x int, op string, y int) (xEcho int, opEcho string, yEcho int, result int, err error)

Arithmetic performs an arithmetic operation between two integers x and y given an operator op.

func (Client) Distance

func (_c Client) Distance(ctx context.Context, p1 Point, p2 Point) (d float64, err error)

Distance calculates the distance between two points. It demonstrates the use of the defined type Point.

func (Client) ForHost

func (_c Client) ForHost(host string) Client

ForHost returns a copy of the client with a different hostname to be applied to requests.

func (Client) Square

func (_c Client) Square(ctx context.Context, x int) (xEcho int, result int, err error)

Square prints the square of the integer x.

func (Client) WithOptions added in v1.13.1

func (_c Client) WithOptions(opts ...pub.Option) Client

WithOptions returns a copy of the client with options to be applied to requests.

type Def added in v1.23.0

type Def struct {
	Method string
	Route  string
}

Def defines an endpoint of the microservice.

func (*Def) URL added in v1.23.0

func (d *Def) URL() string

URL is the full URL to the endpoint.

type DistanceIn

type DistanceIn struct {
	P1 Point `json:"p1,omitzero"`
	P2 Point `json:"p2,omitzero"`
}

DistanceIn are the input arguments of Distance.

type DistanceOut

type DistanceOut struct {
	D float64 `json:"d,omitzero"`
}

DistanceOut are the output arguments of Distance.

type DistanceResponse

type DistanceResponse multicastResponse // MARKER: Distance

DistanceResponse packs the response of Distance.

func (*DistanceResponse) Get

func (_res *DistanceResponse) Get() (d float64, err error)

Get unpacks the return arguments of Distance.

type Executor added in v1.26.0

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

Executor runs tasks and workflows synchronously, blocking until termination. It is primarily intended for integration tests. Production code should use the foreman Client to create and start flows asynchronously.

func NewExecutor added in v1.26.0

func NewExecutor(caller service.Publisher) Executor

NewExecutor creates a new executor proxy to the microservice.

func (Executor) ForHost added in v1.26.0

func (_c Executor) ForHost(host string) Executor

ForHost returns a copy of the executor with a different hostname to be applied to requests.

func (Executor) WithInputFlow added in v1.26.0

func (_c Executor) WithInputFlow(flow *workflow.Flow) Executor

WithInputFlow returns a copy of the executor with an input flow to use for task execution. The input flow's state is available to the task in addition to the typed input arguments.

func (Executor) WithOptions added in v1.26.0

func (_c Executor) WithOptions(opts ...pub.Option) Executor

WithOptions returns a copy of the executor with options to be applied to requests.

func (Executor) WithOutputFlow added in v1.26.0

func (_c Executor) WithOutputFlow(flow *workflow.Flow) Executor

WithOutputFlow returns a copy of the executor with an output flow to populate after task execution. The output flow captures the full flow state including control signals (Goto, Retry, Interrupt, Sleep).

type Hook added in v1.22.0

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

Hook assists in the subscription to the events of the microservice.

func NewHook added in v1.22.0

func NewHook(listener service.Subscriber) Hook

NewHook creates a new hook to the events of the microservice.

func (Hook) ForHost added in v1.22.0

func (c Hook) ForHost(host string) Hook

ForHost returns a copy of the hook with a different hostname to be applied to the subscription.

func (Hook) WithOptions added in v1.22.0

func (c Hook) WithOptions(opts ...sub.Option) Hook

WithOptions returns a copy of the hook with options to be applied to subscriptions.

type MulticastClient

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

MulticastClient is a lightweight proxy for making multicast calls to the microservice.

func NewMulticastClient

func NewMulticastClient(caller service.Publisher) MulticastClient

NewMulticastClient creates a new multicast client proxy to the microservice.

func (MulticastClient) Arithmetic

func (_c MulticastClient) Arithmetic(ctx context.Context, x int, op string, y int) iter.Seq[*ArithmeticResponse]

Arithmetic performs an arithmetic operation between two integers x and y given an operator op.

func (MulticastClient) Distance

func (_c MulticastClient) Distance(ctx context.Context, p1 Point, p2 Point) iter.Seq[*DistanceResponse]

Distance calculates the distance between two points. It demonstrates the use of the defined type Point.

func (MulticastClient) ForHost

func (_c MulticastClient) ForHost(host string) MulticastClient

ForHost returns a copy of the client with a different hostname to be applied to requests.

func (MulticastClient) Square

Square prints the square of the integer x.

func (MulticastClient) WithOptions added in v1.13.1

func (_c MulticastClient) WithOptions(opts ...pub.Option) MulticastClient

WithOptions returns a copy of the client with options to be applied to requests.

type MulticastTrigger added in v1.22.0

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

MulticastTrigger is a lightweight proxy for triggering the events of the microservice.

func NewMulticastTrigger added in v1.22.0

func NewMulticastTrigger(caller service.Publisher) MulticastTrigger

NewMulticastTrigger creates a new multicast trigger of events of the microservice.

func (MulticastTrigger) ForHost added in v1.22.0

func (_c MulticastTrigger) ForHost(host string) MulticastTrigger

ForHost returns a copy of the trigger with a different hostname to be applied to requests.

func (MulticastTrigger) WithOptions added in v1.22.0

func (_c MulticastTrigger) WithOptions(opts ...pub.Option) MulticastTrigger

WithOptions returns a copy of the trigger with options to be applied to requests.

type Point

type Point struct {
	X float64 `json:"x,omitzero" jsonschema:"description=X coordinate,example=6"`
	Y float64 `json:"y,omitzero" jsonschema:"description=Y coordinate,example=8"`
}

Point is a 2D (X,Y) coordinate.

type SquareIn

type SquareIn struct {
	X int `json:"x,omitzero"`
}

SquareIn are the input arguments of Square.

type SquareOut

type SquareOut struct {
	XEcho  int `json:"xEcho,omitzero"`
	Result int `json:"result,omitzero"`
}

SquareOut are the output arguments of Square.

type SquareResponse

type SquareResponse multicastResponse // MARKER: Square

SquareResponse packs the response of Square.

func (*SquareResponse) Get

func (_res *SquareResponse) Get() (xEcho int, result int, err error)

Get unpacks the return arguments of Square.

Jump to

Keyboard shortcuts

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