ゆるふわ技術日誌

エンジニア見習いの悪戦苦闘日記

GoやったよGo #347

毎日Goやってる。

今日は標準のnet/httpパッケージを使って簡単にRESTっぽいことをしたり、WAFであるEchoを使ったりしてみた。

前評判でnet/httpパッケージは機能が充実しててそのままでも結構イケるという話を聞いていたのですが、リクエストメソッド別にハンドラを分けたりということができないっぽくて流石に辛そうだったのでWAFを探してみた結果、EchoかGinがスタンダードっぽかったのでEchoを選んでとりあえず使ってみることにしました。Echoちょこちょこ書いてみた感じは、Node.jsのKoaやExpressにかなり近いような印象を受けました。

あとは、Goのインタフェースについて少し詰まったのでまとめた。

Goはinterfaceを使ってダックタイピングを実現することができる。具体的にはnet/httpHandlerは以下のようなインタフェースで実装されている。

type Handler interface {
        ServeHTTP(ResponseWriter, *Request)
}

このfunc ServeHTTP(ResponseWriter, *Request)を任意の型をレシーバーに取って実装すると、Handlerとして扱うことができる。(net/httpパッケージのHandleの第2引数に渡すことができる)

このようにしてオブジェクト指向っぽいことを実現していくのがGoの基本的なやり方なのかな?(こういうのなんていうんだったっけ)

雑談

研究の方はもう一回ちゃんとRFC7540を読む必要が出てきたぞ…おいおい…

一回読んでるから次はちゃんと内容が入ってくることを祈って。