もがき系プログラマの日常

もがき系エンジニアの勉強したこと、日常のこと、気になっている技術、備忘録などを紹介するブログです。

NuxtとGoではじめるWebアプリ開発を読んで勉強 vol.1

はじめに

こんばんは。

今回はこの本を読み始めました。

なんとなんと2019年12月の本です。

出てすぐ買ったので、まる2年寝かした本です。 発酵しています。

GoもNuxtも興味あるので、早速やっていきます。

今回は1〜4章まで

4章はGo部分のみやっています。 環境構築にかなりつまずいたので...

本題

各バージョン

とりあえず、本で紹介されている各ツールのバージョンは軒並み古いですので、全部最新版でやっていきます。

go

$ go version
go version go1.18 darwin/amd64

echo

$ go get github.com/labstack/echo/v4
go: added github.com/labstack/echo/v4 v4.7.2

nuxt

"nuxt": "^2.15.8"

dep

本で紹介されている dep は使っておらず gomod を使っています。

(入れるの大変だったから代替品ないかなと調べてたらすでに古いということだったので...)

www.threenext.com

realize

こちらも本で紹介されている realize は使わず air を使いました。

(こちらも同じく入れるの大変だったので調べたら、以下同文)

qiita.com

実行してみる

$ go run server.go 

   ____    __
  / __/___/ /  ___
 / _// __/ _ \/ _ \
/___/\__/_//_/\___/ v4.7.2
High performance, minimalist Go web framework
https://echo.labstack.com
____________________________________O/_______
                                    O\
⇨ http server started on [::]:8080

f:id:kojirooooocks:20220324002516p:plain

おけです。

echoフレームワークのメジャーバージョンやGoのバージョンもだいぶ上がっていたので、全く動かないかなと心配していましたが、Goのコードに関してはほぼ問題なく動きました。

1点、 google.golang.org/api/youtube/v3 で取得するデータを指定するところで本では

call := yts.Videos.List("id,snippet").Chart("mostPopular").MaxResults(3)

と記載されていたのですが、これではエラーになりました。 解決策としては配列で指定すれば良いみたいでした。

call := yts.Videos.List([]string{"id", "snippet"}).Chart("mostPopular").MaxResults(3)

仮にidのみ指定すると以下みたいな感じで取れます。

[
  {
    "id": "jjXZJZ4F8Ak",
    "kind": "youtube#video"
  },
  {
    "id": "r8Eypb1xYPM",
    "kind": "youtube#video"
  },
  {
    "id": "p0vxVY2HMEs",
    "kind": "youtube#video"
  }
]

終わりに

go久々にやってみましたが、全くわかりませんね。 それ以上に nuxtもですが。。。

次はnuxtの部分からやっていきます。