OpenAPI and SDKs
OpenAPI
Section titled “OpenAPI”Every Slipway server publishes an OpenAPI description derived from the protobuf definitions:
GET /api/v1/openapi.jsonUse it with API explorers, request validators or generators for languages without a Connect client. The published docs site mirrors the current release’s file.
curl -sS https://slipway.example.com/api/v1/openapi.json -o slipway-openapi.jsonMethods appear as POST /slipway.v1.<Service>/<Method> with JSON bodies, the same wire format as the Connect protocol. Server-streaming methods are in the protobuf but are better consumed with a Connect client.
Protobuf
Section titled “Protobuf”The source of truth is proto/slipway/v1/*.proto in the repository, managed with buf (lint and breaking-change checks run in CI). Generate a client for any language that has a protoc plugin:
version: v2plugins: - remote: buf.build/protocolbuffers/python out: genGenerated SDKs
Section titled “Generated SDKs”| Language | Package | Notes |
|---|---|---|
| Go | github.com/slipway-systems/slipway/gen/go/slipway/v1 and .../slipwayv1connect |
Apache-2.0 |
| TypeScript | @slipway/api-client |
protobuf-es v2 and connect-es; works in browsers and Node |
The SDKs are Apache-2.0 so you can embed them freely.
Versioning and compatibility
Section titled “Versioning and compatibility”The API is v1. Within a major version, changes are additive: new fields and methods, never removed or renumbered. Breaking changes are checked in CI with buf breaking. Deprecated fields are marked in the protobuf and remain for at least one minor release.