Skip to content

v0.1.0: Initial release

Latest

Choose a tag to compare

@mbolli mbolli released this 04 Jul 21:02

First release of the Wallee Go SDK, a Go client for the Wallee Web Service API. Wallee ships official SDKs for PHP, Java, Python, Ruby, C#, and TypeScript but not Go, so this fills the gap the same way they're built: generated from Wallee's own OpenAPI (Swagger 2.0) definition, with a hand-written auth layer on top.

Highlights

  • Full generated client. 111 services, 445 models, via openapi-generator 7.23.0 (pinned) from the pinned swagger.json. Base https://app-wallee.com/api.
  • Auth built in. NewClient(Config{UserID, SecretKey}) signs every request through an http.RoundTripper. JWT (HS256) is the default and matches the current official SDKs; the legacy MAC (HMAC-SHA512) scheme is available via Config.Auth = AuthMAC. Both are verified end-to-end against Wallee's shared test space.
  • Zero dependencies. Pure standard library.
  • Reproducible regeneration. ./gen.sh runs the pinned generator against the pinned spec; hand-written files are protected from the generator.

Continuous integration

  • CI (ci.yml) runs on every push and pull request: a gofmt gate, go vet, go build, and go test -race, across Go 1.23 (the go.mod floor) and the current stable release. Offline only, so it never touches the network.
  • Live (live.yml) runs weekly on a schedule plus manual dispatch: the gated integration tests against Wallee's live test space (WALLEE_LIVE_TEST=1). It is kept separate so upstream flakiness never blocks a pull request, and optional repository secrets can point it at a private test space.

Install

go get github.com/zweiundeins/wallee-go-sdk/wallee@v0.1.0
import "github.com/zweiundeins/wallee-go-sdk/wallee"

client, _ := wallee.NewClient(wallee.Config{UserID: 140519, SecretKey: os.Getenv("WALLEE_API_KEY")})
tx, _, err := client.TransactionServiceAPI.TransactionServiceRead(ctx).SpaceId(12345).Id(42).Execute()

Notes

  • The client lives in the wallee/ subpackage; the module path is the repo root.
  • Pre-1.0: the surface may shift as the SDK tracks upstream (regeneration) and ergonomics settle, so pin a version.