Open7

goaのDSL内でFiles()を記述したとき、genとexampleの結果で食い違いが出てエラーになる

R-AzR-Az

https://pkg.go.dev/goa.design/goa/v3/dsl#Files
design.go

var _ = Service("bottle", func() {
    Files("/index.json", "/www/data/index.json", func() {
        Description("Serve home page.")
        Docs(func() {
            Description("Additional documentation")
            URL("https://goa.design")
        })
    }) 
})

としたとき、
Not enough arguments in call to 'bottlesvr.New'とエラーがでる。
これはfileSystemGenHTTPIndexJSONというhttp.FileSystemの引数をexample側が取る状態で生成されないことが原因
example/http.go

#...etc
bottleServer = bottlesvr.New(bottleEndpoints, mux, dec, enc, eh, nil)

gen/http/bottle/server/server.go

func New(
	e *health.Endpoints,
	mux goahttp.Muxer,
	decoder func(*http.Request) goahttp.Decoder,
	encoder func(context.Context, http.ResponseWriter) goahttp.Encoder,
	errhandler func(context.Context, http.ResponseWriter, error),
	formatter func(ctx context.Context, err error) goahttp.Statuser,
	fileSystemGenHTTPIndexJSON http.FileSystem,
) *Server {
R-AzR-Az

いやまさかそんなわけ無いと思って、簡単なテストリポジトリ切って試したらそんなことなくて、ちゃんとexampleでhttp.goの引数は噛み合ってた
なんでやん

R-AzR-Az

テストリポジトリで見てみたが、確かに複数Filesが一個のServiceにあると引数が足らなくなる
が、しかし自社は一個しかFIlesおいてないんだよな…

R-AzR-Az

取り敢えず一旦、goaのリポジトリを眺めてみる