fbpx
  1. HOME
  2. ブログ
  3. IT技術
  4. 【第4回】Go言語(Golang)入門~REST API環境構築編~

【第4回】Go言語(Golang)入門~REST API環境構築編~

Go言語(Golang)入門~第4回目~

秋山笹川先生

(株)ライトコードの笹川(ささがわ)です

今回も、Go言語(Golang)を習得していきたいと思います。

引き続き、Firestoreを利用して色々とやってみようかと思います。

Firestoreをデータストレージ、GolangをAPIとした場合は、どこかにデプロイしてから使うことが想定されます。

そのため、今回はデプロイする前にREST APIとして使えるようにしたいと思います。

ちなみに、RESTにした理由は特にありません(笑)

入門編のゴールとしては、Androidアプリとの結合を目論んでいるので、「RESTでいいなぁ」と難しいこと考えずに思った次第です

前回の記事はこちら

Webフレームワークを入れてみよう

「Go REST」などとGoogle検索すると、多くがWebフレームワークを利用した方法での記事が多いようです。

【参考サイト】
Go言語Webフレームワークランキング

今回、入門編ですので、上記の記事で上位として出ているechoを利用したいと思います。

【echoドキュメント】
https://echo.labstack.com/guide

ちなみに、選定理由としては、「ドキュメントが読みやすい」ことでした!

気軽に導入してみたいのに読みづらいのは選びにくいものです…

関連記事

また、「echo」については、こちらの記事もご覧ください。

main.go を修正

それでは、早速、上記ドキュメント通りに main.go を修正してみましょう!

書いたら、dep のおまじないを実行します。

labstackパッケージ が入っているかも確認します。

実行

入ってることを確認したら、 go run で実行します。

おお、なんかいつもと動きが違いますね!

では、以下にアクセスしてみます。

http://localhost:1323

ちゃんとできているようです!

そういえば、SpringBootのときは、もう少し時間がかかった気がします。

こんなに楽だとは思わなかったです!

ルーティングをしてみよう

では、それぞれルーティングをしてみようと思います。

GET

まずは、GETからやります!

http://localhost:1323/users/sasanori

と、リクエストすると

sasanori

と表示されるはずです。

成功しました!

GETで複数のパラメーター付与した場合

続いて、GETで複数のパラメーター付与した場合です。

http://localhost:1323/show?team=example&member=sasanori

でリクエストしてみます。

team:example, member:sasanori

と出れば成功です。

成功です!

POST

続けて、POSTを実装します。

POSTなのでブラウザ以外からのリクエストをします。

今回は、curlではなく、「Postman」というツールを使ってリクエストします。

http://localhost:1323/save

に対して

application/x-www-form-urlencoded の name=sasanori, email=test@example.com

を付与したPOSTリクエストをします。

成功です!

name:sasanori, email:test@example.com

と表示されました。

ルーティングデータの受け取りは、問題なくできそうです!

JSON形式で返してみましょう

REST APIですので、最終的には、JSON形式でのレスポンスを用意する必要があります。

ちなみに、Go言語(Golang)では、クラスという概念がありません。

そのため、構造体を利用し Json の取り扱いをすることが多いです。

http://localhost:1323/users

に対して

application/x-www-form-urlencoded の name=sasanori, email=test@example.com

を付与したPOSTリクエストをします。

確認

下記のようなレスポンスが来れば成功です!

想定通りのレスポンスです!

JSON形式で受け取って返す

それでは、JSON形式で受け取った値をそれぞれJSON形式で返してみましょう。

受け取り用の構造体を用意します。

レスポンス用の構造体を用意します。

パースしてレスポンスを返すようにします。

http://localhost:1323/send

に対して

application/x-www-form-urlencoded の name=sasanori, email=test@example.com, message=test message

を付与したPOSTリクエストをします。

確認

下記のようなレスポンスが来れば成功です。

想定通りのレスポンスです!

さいごに

これで、APIとしての機能の実装の基本は完成しました。

でも、REST APIとして機能させるには、まだやることは沢山ありそうですね。

まだ構造体に不慣れなのと、Jsonパースあたりが正直怪しい。

そのため、今後はそこらへんも学習したいと思います。

データストレージとの結合デプロイについて、また次回以降に書いていきますね。

なお、今回作成したgoファイルは、こちらのリポジトリにて管理しています。

関連記事

一緒に働いてくれる仲間を募集しております!

ライトコードでは、仲間を募集しております!

当社のモットーは「好きなことを仕事にするエンジニア集団」「エンジニアによるエンジニアのための会社」。エンジニアであるあなたの「やってみたいこと」を全力で応援する会社です。

また、ライトコードは現在、急成長中!だからこそ、あなたにお任せしたいやりがいのあるお仕事は沢山あります。「コアメンバー」として活躍してくれる、あなたからのご応募をお待ちしております!

なお、ご応募の前に、「話しだけ聞いてみたい」「社内の雰囲気を知りたい」という方はこちらをご覧ください。

ライトコードでは一緒に働いていただける方を募集しております!

採用情報はこちら

書いた人はこんな人

笹川 (社員)
笹川 (社員)
新潟生まれ新潟育ち本業はモバイルアプリエンジニア。
日々、猫(犬)エンジニアとして活躍中!

関連記事