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ファイルは、こちらのリポジトリにて管理しています。

関連記事

ライトコードよりお知らせ

にゃんこ師匠にゃんこ師匠
システム開発のご相談やご依頼はこちら
ミツオカミツオカ
ライトコードの採用募集はこちら
にゃんこ師匠にゃんこ師匠
社長と一杯飲みながらお話してみたい方はこちら
ミツオカミツオカ
フリーランスエンジニア様の募集はこちら
にゃんこ師匠にゃんこ師匠
その他、お問い合わせはこちら
ミツオカミツオカ
   
お気軽にお問い合わせください!せっかくなので、別の記事もぜひ読んでいって下さいね!

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

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

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

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

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

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

採用情報はこちら

書いた人はこんな人

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

関連記事