[Go言語]REST APIを作ろう!(Qiita記事改造版)

この記事は、以前Qiitaに投稿した「RESTAPI WITH Go言語!」の改造版になります。

DBを一切使わない単純なAPIです。

実装方法を変えただけで、処理内容については変更なしです。

処理内容の詳細は、Qiita記事の方をご覧ください。

記事まとめ

Install Package

次のモジュールをインストールしてください。

プロジェクト作成

続いて、プロジェクトを作成します。

Articleの実装

Article(記事)モデルをstructで定義します。

ネットワーク越しのデータ変換(Json <-> Go Struct)には、jsonパッケージのMarshalJSON, UnMarshalJSONを用います。

MarshalJSONは、○○データをArticleStructに変換(Encode)。
UnMarshalJSONは、JSONデータを○○データに変換(Decode)。

Article Structのフィールドは小文字(idなど)になっており、外部参照ができません。このままだとネットワーク越しのデータ通信ができないため(空文字が渡される)、Marshal/UnMarshalで再定義しています。※Example (CustomMarshalJSON)

ちなみに、UnmarshalJSONは、既存の処理をオーバーライドするため、この名前(UnmarshalJSON)でなければなりません。※MarshalJSONも同様

そして、UnmarshalJSONを設定すると、他の処理から呼び出さなくても、メソッド内の処理が適用されます。※すべての実装が終わったら、このメソッドをコメントアウトしてみてください。Insert処理でデータが追加できなくなるはずです

Responseメッセージの作成

Marshalは、次の使い方も可能です。

この処理によりReponseとして返したいメッセージ内容をカスタマイズできます。

上記の場合だと、「{Message: “fail”}」の形式でメッセージを呼び出し元に返せます。

Article Serverの作成

Article Serverを立てます。

ArticeServer Structをメソッドとして定義しました。

このようにすれば、結構わかりやすく実装できますね。
※上記の処理内容については、Qiitaをご覧ください。

Main関数の実装

最後にMain関数を実装して終了です。

init関数内でデータを作成し、main関数内のRunメソッドにてArticle Serverを起動しています。

動作確認

この記事を参考に、動作確認をしてみましょう。

Article Serverの起動方法は、以下です。

PostmanTalen API Testerなどを使って動作確認をしてみてください。

URLの一覧も記載しておきます。

おわりに

Go言語の実装にも慣れて来ました。Go言語を使ったシステム開発に携わってみたいですね^^

参考書籍

コメントを残す