フロントエンドとバックエンドの分離
Next.js + FastAPI構成での開発で得られた知見をまとめます。
Next.js + FastAPI構成での開発で得られた知見をまとめます。
project/
├── frontend/ # Next.js
│ ├── src/
│ ├── public/
│ └── package.json
├── backend/ # FastAPI
│ ├── app/
│ ├── requirements.txt
│ └── main.py
└── docker-compose.yml
Docker Compose活用
version: '3.8'
services:
frontend:
build: ./frontend
ports:
- "3000:3000"
volumes:
- ./frontend:/app
backend:
build: ./backend
ports:
- "8000:8000"
volumes:
- ./backend:/app
FastAPI側
from fastapi.middleware.cors import CORSMiddleware
app.add_middleware(
CORSMiddleware,
allow_origins=["http://localhost:3000"],
allow_credentials=True,
allow_methods=["*"],
allow_headers=["*"],
)
JWT トークンベース認証
カスタムフック活用
const useAPI = () => {
const fetchAPI = async (endpoint: string, options?: RequestInit) => {
const response = await fetch(`${API_BASE_URL}${endpoint}`, {
credentials: 'include',
...options,
})
return response.json()
}
return { fetchAPI }
}
Vercel + Railway
フロントエンド
バックエンド
この構成により、スケーラブルで保守性の高いアプリケーションを構築できます。
他の人にも役立つ情報を広めましょう