月間29,000PV達成! 収益は毎日発生中! ギランバレー症候群に関する情報を集めています

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

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

 

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

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

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

 

僕のプロフィールはこちら

 

 

前提

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

 

 

ソースコード

■GitHub

URL:「https://github.com/izumin0401/go-lang/blob/master/api.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:"-"」と記載すると、出力対象外になります。

 

 

Advertisement

 

Jsonデータが複数の場合

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

 

 

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

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

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

・Jsonに合わせて構造体を定義できる⇒Cっぽいね

・「return」は複数値返却可能

・「go fmt hoge.go」でソースコードが整形できる

 

 

おすすめ本

これおすすめやで。

 

 

 

まとめ

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

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

さいなら。

Travelerを知らないの?