EchoをVercel(Zeit now)のServerless Function上で動かす
TL;DR
Goやサーバレスアーキテクチャの初心者なので、もうちょっといいやり方ないかなーと持っています。
やりたいこと
Vercel(Zeit now)を使っていて、Serverless functionでGoが選択できたので利用してみたいと思ったので試してみた。
やったこと
ドキュメントにあるように プロジェクトルートに api
ディレクトリを生成して date.go
などつくる(このときhttp.HandleFuncのシグネチャである公開メソッドを用意すること)と /api/date
というURLを提供できる( /api/
を指定したい場合は /api/index.go
とする)。
が、今回はルーティングはEchoに任せたい(そもそもこれでいいのか?)と思ったので、 now.json の routes
オプションを使い、 /api
配下に来たリクエストは /api/index.go
で受け取って振り分けるようにした。
わかっていないこと
go.mod で module github.com/kimihito/hoge
みたいな指定をすると、 now dev
などで開発するとGitHubにアクセスしにいってしまう。 これがGo modのお作法なのか、 利用しているプラットフォームの動作なのかわかっていない(ょゎぃ)
参考にしたリンク
Pocketでお気に入りしたページをはてなブックマークに追加するWebアプリを書いた
TL;DR
はじめてGo言語(Echo)でコードを書いてみた。
やりたいこと
Pocket でお気に入りした記事をIFTTTのメール通知機能を使ってはてなブックマークに投稿していたが、メールでのブックマーク投稿機能の提供が終わってしまった。
なのでGo言語の勉強も兼ねて作ってみた。Go言語わからなすぎてだいぶハマってしまった… 😭
やってること
POSTが呼ばれたらパラメータにいるURLをはてなブックマークAPIを叩いて追加するだけ。
Pocketでお気に入りをしたらPOSTを呼ぶ部分は IFTTTの webhook serviceからやっている。
使ったもの
- Golang 1.11.5 ( Go modulesを利用 )
- echo
- Heroku
- IFTTT webhooks
- ngrok (ローカルでの動作確認)
ハマったこと
リクエストトークンの取得 部分がうまく書けず、結局 はてなブログ API 用の gem を書いた - blog.kymmt.com に入っているトークンを取得するRubyコードを呼び出して取得した。
書いてはみたけどまだGo言語に慣れていない…
参考にしたもの
特に hatena-go についてはめっちゃコード参考にしました。ありがとうございます。