🆙

Goa v3.14.5 更新情報

2024/01/14に公開

概要

Goa の更新情報メモです。

Goa v3.14.5

Goa v3.14.2 から v3.14.5 までの更新情報です。

主な変更内容

間が空いているように見えますが、細かいバグ修正が続いたためで、そんなに間は空いていません。

Add openapi:generate Meta support to dsl.Attribute (#3437)

関連:

  • Fix godoc for openapi:generate Meta (#3443)

Goaはデザインに対して、OpenAPIドキュメントを作ってくれますが、外部への公開用に、OpenAPIを編集して渡す、なんてことしたことないでしょうか?私はあります。

そんなとき、Meta("openapi:generate", false)を指定すると、OpenAPIドキュメントの出力からそのエンドポイントを除外してくれます。ヘルスチェックとか、外部に公開しないようなエンドポイントがある場合には重宝しそうです。

Server("test", func() {
	Host("localhost", func() {
		URI("https://goa.design")
	})
	Meta("openapi:generate", "false")
})

Add API version constant to generated code (#3439)

関連: Add APIName constant to generated code (#3445)

生成されるコードにAPIVersion定数が導入される用になりました。テレメトリを取る際に、この値と、すでに利用可能な既存の ServiceName 定数を利用して識別できるようにするためのものです。

バージョンがデザインで明示的に設定されていない場合、0.0.1がデフォルトになります。

e.g. github.com/goadesign/examples/basic/gen/calc/service.go

// APIName is the name of the API as defined in the design.
const APIName = "calc"

// APIVersion is the version of the API as defined in the design.
const APIVersion = "0.0.1"

// ServiceName is the name of the service as defined in the design. This is the
// same value that is set in the endpoint request contexts under the ServiceKey
// key.
const ServiceName = "calc"

Deprecate obsolete instrumentation (#3440)

RequestIDとかCaptureResponseとかxrayのミドルウエアとか、OpenTelemetryで代行できるいくつかの機能が非推奨となりました。

これらの機能はClueに統合したい、ということでしょうか?

Handle inline object array and map elements (#3442)

生成されるarrayやmapのインライン要素のjsonタグが上手く生成できていなかったバグが修正されました。

Corrected MapParams Behavior to Avoid Unintended Filtering (#3446)

MapParamsはHTTPトランスポートで利用可能なSDLで、マップで表されるクエリ文字列をPayloadのアトリビュートにマッピングします。動作についてバグ報告があったので修正されました。

細かな調整ですが、より行き届いた扱いが出来そうです。

Happy hacking!

Discussion