やっほー
【Go】ルーティング&Json返却APIを1ファイルで作成してみた件

【Go】ルーティング&Json返却APIを1ファイルで作成してみた件

Goでメッサ簡単なAPIを作ってみました

APIを作るとなると、まあ当たり前ですがルーティングも作ることになるのでそれも合わせて作成しました。

ってことで今回は、Goでルーティング&Json返却APIを1ファイルだけで作成してみます

前提

  • Goがインストールされていること

ソースコード

早速作ってみた

今回ルーティングに追加したのは「/」「/user」の2つのみです。
/」にアクセスすると文字列を表示するだけですが、「/user」はユーザのJsonデータを取得し表示します。

作成したAPIを起動する

これで起動できます。

実際にアクセスしてみる

go-api

http://localhost:9999/」にアクセスするとこんな感じ。

 

go-api2

http://localhost:9999/user」にアクセスするとこんな感じ。

 

返却されたJsonはこんな感じ。まあ当たり前やろって感じ。

てことで解説

さすがにこれで終わるのも味気ないので、ちょっぴり解説します。

ルーティングの登録

ルーティングは「http.HandleFunc」を使用することで登録できます。

Jsonデータの構造体はこんな感じ

Goの面白いところは、Jsonデータに合わせた構造体を作ることができ、かつその構造体にデータをぺこっと入れることができる点です。
型の後ろに記載されている「json…..」は、「Jsonを表示する際のキーを指定のキーで表示するよ」という意味になります。
json:"-"」と記載すると、出力対象外になります。

Jsonデータが複数の場合

↑のような感じで、構造体の配列である「Users」を定義するだけです。

APIを作成してみて思ったこと

API自体は簡単に作れますが、おそらくDB等にアクセスしたりする場合には他のフレームワークの方が便利かもしれません。

以下、当たり前の話ですが、個人的にGoを触ってみて面白いと思った点です。

  • Jsonに合わせて構造体を定義できる⇒Cっぽいね
  • 「return」は複数値返却可能
  • 「go fmt hoge.go」でソースコードが整形できる

おすすめ本

これおすすめやで。

まとめ

Goは一般的に速度が速いと言われていますが、このサンプルだけでは全然分かりませんな。

まあ、APIの作り方は雰囲気分かったのでOKとしましょう。

さいなら。

【Go】ルーティング&Json返却APIを1ファイルで作成してみた件
フォローしてもらえると泣いて喜びます