56 lines
1.3 KiB
Markdown
56 lines
1.3 KiB
Markdown
# Go Client
|
|
|
|
The Go client module contains the generated MXAccess Gateway protobuf bindings,
|
|
a small handwritten `mxgateway` package, and the `mxgw-go` test CLI scaffold.
|
|
The module uses the shared proto inputs documented in
|
|
`../../docs/client-proto-generation.md` so gateway and client contracts stay in
|
|
sync.
|
|
|
|
## Layout
|
|
|
|
```text
|
|
clients/go/
|
|
go.mod
|
|
generate-proto.ps1
|
|
internal/generated/
|
|
mxgateway/
|
|
cmd/mxgw-go/
|
|
```
|
|
|
|
`internal/generated` contains code produced by `protoc`, `protoc-gen-go`, and
|
|
`protoc-gen-go-grpc`. Do not edit generated files by hand.
|
|
|
|
## Regenerating Protobuf Bindings
|
|
|
|
Run generation after the shared `.proto` files or the Go output path changes:
|
|
|
|
```powershell
|
|
./generate-proto.ps1
|
|
```
|
|
|
|
The script uses the tool paths recorded in `../../docs/toolchain-links.md`.
|
|
|
|
## Build And Test
|
|
|
|
Run the Go module checks from `clients/go`:
|
|
|
|
```powershell
|
|
go test ./...
|
|
go build ./...
|
|
```
|
|
|
|
The scaffold tests parse the shared golden JSON fixtures with the generated Go
|
|
types. Later client implementation tests add fake gRPC services, auth metadata,
|
|
streaming, value conversion, and CLI behavior.
|
|
|
|
## CLI
|
|
|
|
The scaffold CLI exposes version information:
|
|
|
|
```powershell
|
|
go run ./cmd/mxgw-go version -json
|
|
```
|
|
|
|
Additional commands are implemented with the client/session wrapper work.
|
|
|