Upgrade to Pro — share decks privately, control downloads, hide ads and more …

architecture of API server with golang

architecture of API server with golang

Gopher道場#1 LT大会での発表資料です。
golamgによるAPIサーバー設計について検討してみました

mtskhs

May 28, 2018
Tweet

More Decks by mtskhs

Other Decks in Technology

Transcript

  1. What’s this? • Agenda 1. アーキテクチャ設計 2. golangで書いてみた 3. 課題点/疑問点

    • 話すこと ◦ 概念的な話 ◦ packageの分け方 / interface ◦ サンプルコード(https://github.com/matsu0228/go_sandbox/tree/master/cleanArch) • 話さないこと ◦ どのようなFramework/Libraryを使うか ◦ 例:database接続には◦◦を使う 3
  2. 1-1.APIアーキテクチャ設計 • ある程度の規模のAPIサーバーをgolangで構築する ◦ GET /product/1795, POST /product/new ◦ GET

    /campaign/5235 ◦ … • 要件 ◦ 修正時の影響範囲が限定的  かつ ◦ テストしやすい(databaseまわりなど) 4
  3. 2-1. レイヤー • Entity ◦ structを定義 • Usecase ◦ ビジネスロジックを定義

    ◦ <= IF:product.repository • Repository ◦ database操作を定義 ◦ <= database/sql (ref: sqlx) • HttpDeliver ◦ webサーバーを定義 ◦ <= IF:product.usecase 6