backend-patternslisted
Install: claude install-skill kimny1143/claude-code-template
# backend-patterns - バックエンドパターン集
バックエンドコード規約とパターン。
## 使い方
```
新しいAPIルートを作る時、このスキルを参照
```
---
## 1. APIルート構造
### 認証パターン(Next.js例)
```typescript
// 認証ミドルウェアを使用
import { withAuth } from '@/lib/middleware/with-auth';
import { apiSuccess, apiError } from '@/lib/api-response';
export const GET = withAuth(async ({ userId, request }) => {
const data = await repository.findByUserId(userId);
return apiSuccess({ data });
});
export const POST = withAuth(async ({ userId, request }) => {
const body = await request.json();
// バリデーション & 処理
return apiSuccess({ created: result });
});
```
### Express.js例
```typescript
import { Router } from 'express';
import { authenticate } from '@/middleware/auth';
import { validate } from '@/middleware/validate';
const router = Router();
router.get('/', authenticate, async (req, res) => {
const data = await repository.findByUserId(req.user.id);
res.json({ success: true, data });
});
router.post('/', authenticate, validate(createSchema), async (req, res) => {
const result = await repository.create(req.body);
res.status(201).json({ success: true, data: result });
});
```
---
## 2. レスポンス形式
### 統一レスポンス
```typescript
// lib/api-response.ts
export function apiSuccess<T>(data: T, options?: { status?: number }) {
return Response.json(
{ success: true, data, timestamp: new Date().toISOString() },
{ status: options?.status ?? 200 }
);
}
export function apiError(message: string, options?: { status?: number; code?: stri