🍇

WebFramework n本ノック 準備編

に公開

なんの記事?

様々なWebフレームワーク触るにあたっての事前準備
https://github.com/slopwell/web-framework-n-knocks

Webフレームワークで実装するもの

ヘルスチェック + 何かしらを登録、一覧、詳細API

  • GET /health
  • GET /{domain}s
  • GET /{domain}/id
  • POST /{domain}

やらないこと

  • 認証の実装
  • ORMの選定
  • 画面側の実装

全体像

  • 📁ROOT
    • 📁 <WebFramework1>
      • 📁src FW向けのプログラム
      • 📝compose.yaml 特定FW向けのコンテナ。DB依存にする
    • 📁 <WebFramework2 ...n>
      • 📁src FW向けのプログラム
      • 📝compose.yaml 特定FW向けのコンテナ。DB依存にする
    • 📁init.db DBの初期設定と初期データ
    • 📝compose.db.yaml DBコンテナ

RDB選定

個人的な趣味でPostgreSQL

  • bridge-network でapp側のコンテナと紐づける
compose.db.yaml
services:
  db:
    image: postgres:latest
    env_file:
      - .envrc
    ports:
      - "5432:5432"
    volumes:
      - db_data:/var/lib/postgresql/data
      - ./init.db:/docker-entrypoint-initdb.d # ここのSQLファイルが初回起動に勝手に実行される(はず)
    networks:
      - web-framework-n-knocks
volumes:
  db_data:
    driver: local

networks:
  web-framework-n-knocks:
    driver: bridge

ER図

Discussion