🆙

Goa v3.13.0, v3.13.1 更新情報

2023/09/23に公開2

概要

Goa の更新情報メモです。

Goa v3.13.0, v3.13.1

v3.13.0, v3.13.1 の更新情報です。

主な変更内容

今回は mux rooter の変更という大きめの変更が入っています。

meta openapi:example work at APIExpr level too by @antipopp in #3330

ドキュメントで使えるとなっていた OpenAPI ドキュメントへの example 生成の指定が使えてなかったのが直りました。

// - "swagger:example" DEPRECATED, use "openapi:example" instead
//
// - "openapi:example" specifies whether to generate random example. Defaults to
// true. Applicable to API (applies to all attributes) or individual attributes.
//
//	var _ = API("MyAPI", func() {
//	    Meta("openapi:example", "false")
//	})

Switch to chi as default Goa mux by @raphael in #3346

ルーターが dlmfeld/treemux から go-chi/chi のルーターに切り替わりました。

変更の理由は、コミュニティが活発なのとルートマッチに使われたパターンを取得する機能が便利そうだから、といったところのようです。gorilla/muxjulienschmidt/httprouterBunRouterなども検討されたらしい。

この変更によって trailling slash の扱いが変更されているので、treemux の trailling slash の挙動に依存している場合には注意が必要そう。treemux のルーターは trailling slash を適当に調整するという機能がありましたが、chi のルーターは書いてあるとおりのパスにしかマッチしないです。ご注意ください。

Make generated proto filename unique. by @raphael in #3351

protobuf v1.26.0 から複数の同名の protobuf名がリンクされた Go のプログラムを起動するとエラーになるようになった模様:https://protobuf.dev/reference/go/faq/#namespace-conflict

Goa で異なるサービスで同じパッケージ名を利用していると生成される proto のファイル名に同じものが出来てしまっていたのでそれが修正されました。

Consider service and API level requirements by @raphael in #3359

SkipRequestBodyEncodeDecode と認証を一緒に使えないという挙動が修正されました。

Resolve route patterns with default mux by @raphael in #3363

ルーターを chi に変更したときに発生したワイルドカード(*)を含むパターンのエラーの修正。

大きめの変更が入ったのでしばらくバタバタするかもですね。なにか不具合を見つけたれ issue あげていきましょう ╭( ・ㅂ・)و ̑̑ グッ !

Happy hacking!

Discussion