Skip to content
Snapshot of the v0.3 release. Fixes and additions since then are not in it. Current documentation →

v0.6.0

Released 27 August 2026.

Pre-alpha. Minor releases may contain breaking changes before v1.0.

Install

go install github.com/caspel26/goninja/cmd/goninja@v0.6.0
go get github.com/caspel26/goninja@v0.6.0

Requires Go 1.25 or newer.

Added

List endpoints select only list fields

Generated list queries now select the columns exposed by <Model>List rather than fetching every database column and discarding retrieve-only fields after the fact. This avoids reading large detail-only fields such as bodies or blobs on every list request; COUNT continues to cover every matching row.

Changed

OpenAPI construction lives in the runtime

Generated resources now provide their model-specific schemas and filters to goninja.BuildResourceOpenAPI. The shared routes, operations, list envelope, and security structure are built once in goninja instead of repeated in every generated file. The generated prototype became roughly 25% smaller while the resulting OpenAPI document kept the same behaviour.

One path builder for routes and OpenAPI

goninja.ActionPath is now used by both route registration and documentation, so a custom action’s mounted URL and documented URL cannot drift apart.

Fixed

  • OpenAPI summaries choose the correct article: “Create a user,” not “Create an user.”
  • A filter-only time.Time field no longer produces an unused strconv import in generated code.

Links