Goa v3 で Viron を動かしてみた

基本的には下記のページに書いてあることをそのまま実施した感じです。

Goa v2を使った開発環境テンプレート - Qiita
更新 goa v2のUpdateも含め、api designの構成とかも変更した 一応、以前の記事の状態のリポジトリ この記事のサンプルコード 変更点 自動生成コードの修正用shell api designの構成 ...

ただし、上記は Goa v2 のサンプルなので、v3 で動かすためには少し作業が必要でした。
それについてのメモです。
結構適当に進めてしまったので、たぶん抜けなどもあります(/_\*)

以降は、ベースのファイルは上記でも記載されていますが、https://github.com/tonouchi510/goa2-sample から取得するのが手っ取り早いです。

Go Modules を使う

これは必須ではないとは思いますが、自分は Go Modules を使いたかったので、適当なディレクトリを作成してそこにリポジトリから取得したファイルを設置し、 go mod init しました。
※自分は test2 としました。

go mod init test2

import する dsl の変更

まず、design ディレクトリの下にある各ファイルの import する dsl の指定を下記のように変更します。

<       . "goa.design/goa/dsl"
---
>       . "goa.design/goa/v3/dsl"

cors については、下記のように変更します。

<       cors "goa.design/plugins/cors/dsl"
---
>       cors "goa.design/plugins/v3/cors/dsl"

ちなみに、design ファイルは基本これだけ修正すれば動きますが、Contact, Docs, API name, hostname, ポート番号 などを変えたい場合には適宜変えておきます。

controller の移動と変更

controller ディレクトリ下に下記の3ファイルがあると思いますが、これらをプロジェクトのトップディレクトリに移動します。

  • admin.go
  • users.go
  • viron.go

次に、任意のディレクトリでプロジェクトを作成した場合には、移動したそれぞれのファイルで import している記述を変更します。
下記は admin の例です。

"github.com/tonouchi510/goa2-sample/gen/admin"

これを例えば下記のように変更します。
※自分は test2 プロジェクトとしています。

"test2/gen/admin"

ちなみに、私のようにモジュール名を変更してしまっている場合には、package を変更しておく必要があります。

package test2

あとは、冒頭で紹介したページの手順で実行すれば、Viron が立ち上がると思います。
たしかに、これだけの調整で管理画面らしきものが上がってしまうのは驚きですね。

コメント

タイトルとURLをコピーしました