calculatorapi

package
v1.5.1 Latest Latest
Warning

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

Go to latest
Published: Aug 7, 2024 License: Apache-2.0 Imports: 12 Imported by: 0

Documentation

Overview

Package calculatorapi implements the public API of the calculator.example microservice, including clients and data structures.

The Calculator microservice performs simple mathematical operations.

Index

Constants

View Source
const Hostname = "calculator.example"

Hostname is the default hostname of the microservice: calculator.example.

Variables

View Source
var (
	URLOfArithmetic = httpx.JoinHostAndPath(Hostname, `:443/arithmetic`)
	URLOfSquare     = httpx.JoinHostAndPath(Hostname, `:443/square`)
	URLOfDistance   = httpx.JoinHostAndPath(Hostname, `:443/distance`)
)

Fully-qualified URLs of the microservice's endpoints.

Functions

This section is empty.

Types

type ArithmeticIn

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

ArithmeticIn are the input arguments of Arithmetic.

type ArithmeticOut

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

ArithmeticOut are the return values of Arithmetic.

type ArithmeticResponse

type ArithmeticResponse struct {
	HTTPResponse *http.Response
	// contains filtered or unexported fields
}

ArithmeticResponse is the response to Arithmetic.

func (*ArithmeticResponse) Get

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

Get retrieves the return values.

type Client

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

Client is an interface to calling the endpoints of the calculator.example microservice. This simple version is for unicast calls.

func NewClient

func NewClient(caller service.Publisher) *Client

NewClient creates a new unicast client to the calculator.example 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 perform 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 replaces the default hostname of this client.

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.

type DistanceIn

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

DistanceIn are the input arguments of Distance.

type DistanceOut

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

DistanceOut are the return values of Distance.

type DistanceResponse

type DistanceResponse struct {
	HTTPResponse *http.Response
	// contains filtered or unexported fields
}

DistanceResponse is the response to Distance.

func (*DistanceResponse) Get

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

Get retrieves the return values.

type MulticastClient

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

MulticastClient is an interface to calling the endpoints of the calculator.example microservice. This advanced version is for multicast calls.

func NewMulticastClient

func NewMulticastClient(caller service.Publisher) *MulticastClient

NewMulticastClient creates a new multicast client to the calculator.example microservice.

func (*MulticastClient) Arithmetic

func (_c *MulticastClient) Arithmetic(ctx context.Context, x int, op string, y int) <-chan *ArithmeticResponse

Arithmetic perform 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) <-chan *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 replaces the default hostname of this client.

func (*MulticastClient) Square

func (_c *MulticastClient) Square(ctx context.Context, x int) <-chan *SquareResponse

Square prints the square of the integer x.

type Point

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

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

type SquareIn

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

SquareIn are the input arguments of Square.

type SquareOut

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

SquareOut are the return values of Square.

type SquareResponse

type SquareResponse struct {
	HTTPResponse *http.Response
	// contains filtered or unexported fields
}

SquareResponse is the response to Square.

func (*SquareResponse) Get

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

Get retrieves the return values.

Jump to

Keyboard shortcuts

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