CodegenDisabler という Goa v3 プラグインを作った
codegendisabler
は Goa v3 のプラグインで、コードジェネレータの部分的な無効化を可能にします。
プラグインの有効化
プラグインを有効にするには、下記のように codegendisabler の package を import します。
import ( _ "github.com/tchssk/goaplugins/codegendisabler/gen/http/client/types/client_body_init" . "goa.design/goa/v3/dsl" )
このコードは、 gen/http/<service>/client/types.go
というファイル にコード生成を行う処理の内、 client-body-init
というセクションテンプレート名の箇所を無効化します。 codegendisabler
配下の package が、生成されるファイル名・生成を行うセクションテンプレート名に対応しています。
一般的な使い方
Goa が生成するコードには HTTP クライアントと HTTP サーバが含まれますが、 サーバ側 (もしくはクライアント側) の生成だけを無効化するという使い方ができます。
HTTP クライアントコード生成の無効化
import ( _ "github.com/tchssk/goaplugins/codegendisabler/gen/http/cli/cli" _ "github.com/tchssk/goaplugins/codegendisabler/gen/http/client" )
HTTP サーバコード生成の無効化
import ( _ "github.com/tchssk/goaplugins/codegendisabler/gen/http/server" )