テンプレート一覧に戻る

Go API

Go + net/http (enhanced routing) のAPIサーバー向けCLAUDE.md。高パフォーマンスなバックエンドAPI構築に最適です。

中級goapirest
CLAUDE.md
# プロジェクト名

Go で構築されたREST APIサーバー。

## 技術スタック

- **言語**: Go 1.23+
- **ルーター**: net/http (Go 1.22+ enhanced routing)
- **DB**: PostgreSQL 16
- **マイグレーション**: golang-migrate
- **クエリ**: sqlc
- **テスト**: testing + testify

## コマンド

| コマンド | 用途 |
|---------|------|
| `go run ./cmd/server` | 開発サーバー起動 |
| `go test ./...` | テスト実行 |
| `go test -cover ./...` | カバレッジ付きテスト |
| `go vet ./...` | 静的解析 |
| `golangci-lint run` | Lint実行 |
| `sqlc generate` | クエリコード生成 |

## ディレクトリ構造

| パス | 役割 |
|-----|------|
| `cmd/server/` | エントリーポイント |
| `internal/handler/` | HTTPハンドラー |
| `internal/service/` | ビジネスロジック |
| `internal/repository/` | データアクセス層 |
| `internal/model/` | ドメインモデル |
| `migrations/` | DBマイグレーション |

## コーディング規約

- Effective Go / Go Code Review Comments に準拠
- エラーは必ずハンドリング(`_ =` でのエラー無視禁止)
- interface は利用側で定義(Accept interfaces, return structs)
- 構造体のゼロ値を有効活用
- context.Context は第一引数に渡す
- ゴルーチンの起動時はライフサイクル管理を明確にする
- テストはテーブル駆動テストを基本とする

## Git規約

- ブランチ: `feature/`, `fix/`, `chore/`
- コミットメッセージ: Conventional Commits形式

関連ガイド

検索

ガイドやテンプレートを検索...