はじめに Go 言語 + レイヤードアーキテクチャでテストコード込の REST API を作ったらとても勉強になったので共有します。 この記事が誰かの参考になれば幸いです。 今回のサンプルコードの最終形は僕の GitHub にあります。 レイヤードアーキテクチャとは? レイヤードアーキテクチャとは、システムの機能を責務ごとのグループ(レイヤー)に分割して隣り合うレイヤーとだけやり取りできるようにする仕組みです。 レイヤー同士の依存関係は上位から下位への1方向で統一されているのが特徴です。 レイヤー同士はインタフェースでゆるく結合されているため依存性を低く保つことができるというメリットがあります。 レイヤーの種類は一般的に以下のようなものがあります。 1 プレゼンテーション層: GUI や CUI などのユーザーインタフェース 2 アプリケーション層: アプリケーションロジック 3 ドメイン