ヒカリエで行われたGo初心者向けハンズオン(http://gocon.connpass.com/event/21550/)
に参加してきて、とても簡単にAPIからJSON受け取って表示するだけのコマンドラインツールを作ってみたので乗っけてみます。
easyjsonというライブラリと、teratail APIを使いました。
Goハンズオンのチュートリアル用のリポジトリがとても完成度が高くて感動したので、みなさんもやってみるといいと思います。画像をいろいろ変換すコマンドラインアプリケーションを、引数の取り方やエラー処理などをきちんと行いながら作っていくもの。
他の言語でしばらくやっていて、Go言語の基本文法はざっとさらったうえで、これをやるのはとても良いと思います。
コード
package main
import (
"os"
"fmt"
"net/http"
"github.com/m0a/easyjson"
)
var api = "https://teratail.com/api/v1"
func run() error {
resp, err := http.Get(api+"/questions")
if err != nil {
return fmt.Errorf("Failed to connect teratail.com")
}
defer resp.Body.Close()
jsonData, err := easyjson.NewEasyJson(resp.Body)
if err != nil {
return fmt.Errorf("Invalid responses")
}
for _, v:=range jsonData.K("questions").RangeObjects() {
fmt.Printf("%s\n", v.K("title"))
}
return nil
}
func main() {
if err := run(); err != nil {
fmt.Fprintf(os.Stderr, "%s\n", err)
os.Exit(1)
}
}