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
- Variables
- type ArithmeticIn
- type ArithmeticOut
- type ArithmeticResponse
- type Client
- func (_c *Client) Arithmetic(ctx context.Context, x int, op string, y int) (xEcho int, opEcho string, yEcho int, result int, err error)
- func (_c *Client) Distance(ctx context.Context, p1 Point, p2 Point) (d float64, err error)
- func (_c *Client) ForHost(host string) *Client
- func (_c *Client) Square(ctx context.Context, x int) (xEcho int, result int, err error)
- type DistanceIn
- type DistanceOut
- type DistanceResponse
- type MulticastClient
- func (_c *MulticastClient) Arithmetic(ctx context.Context, x int, op string, y int) <-chan *ArithmeticResponse
- func (_c *MulticastClient) Distance(ctx context.Context, p1 Point, p2 Point) <-chan *DistanceResponse
- func (_c *MulticastClient) ForHost(host string) *MulticastClient
- func (_c *MulticastClient) Square(ctx context.Context, x int) <-chan *SquareResponse
- type Point
- type SquareIn
- type SquareOut
- type SquareResponse
Constants ¶
const Hostname = "calculator.example"
Hostname is the default hostname of the microservice: calculator.example.
Variables ¶
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 ¶
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.
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 (*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 ¶
Distance calculates the distance between two points. It demonstrates the use of the defined type Point.
type DistanceIn ¶
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 SquareResponse ¶
type SquareResponse struct { HTTPResponse *http.Response // contains filtered or unexported fields }
SquareResponse is the response to Square.