From ecc
리소스 네이밍, 상태 코드, 페이지네이션, 필터링, 에러 응답, 버저닝, rate limiting을 포함한 프로덕션 REST API 설계 패턴입니다.
npx claudepluginhub sam42-lab/everything-claude-code-krThis skill uses the workspace's default tool permissions.
일관되고 개발자 친화적인 REST API를 설계하기 위한 규칙과 모범 사례입니다.
Mandates invoking relevant skills via tools before any response in coding sessions. Covers access, priorities, and adaptations for Claude Code, Copilot CLI, Gemini CLI.
Share bugs, ideas, or general feedback.
일관되고 개발자 친화적인 REST API를 설계하기 위한 규칙과 모범 사례입니다.
GET /api/v1/users
GET /api/v1/users/:id
POST /api/v1/users
PUT /api/v1/users/:id
PATCH /api/v1/users/:id
DELETE /api/v1/users/:id
리소스는 명사, 복수형, 소문자, kebab-case를 사용합니다.
좋은 예:
/api/v1/team-members
/api/v1/orders?status=active
/api/v1/users/123/orders
나쁜 예:
/api/v1/getUsers
/api/v1/user
/api/v1/team_members
/api/v1/users/123/getOrders
| Method | Idempotent | Safe | Use For |
|---|---|---|---|
| GET | Yes | Yes | 조회 |
| POST | No | No | 생성, 액션 트리거 |
| PUT | Yes | No | 전체 교체 |
| PATCH | 보통 No | No | 부분 수정 |
| DELETE | Yes | No | 삭제 |
200 OK
201 Created
204 No Content
400 Bad Request
401 Unauthorized
403 Forbidden
404 Not Found
409 Conflict
422 Unprocessable Entity
429 Too Many Requests
500 Internal Server Error
502 Bad Gateway
503 Service Unavailable
{
"data": {
"id": "abc-123",
"email": "alice@example.com",
"name": "Alice"
}
}
{
"data": [
{ "id": "abc-123", "name": "Alice" },
{ "id": "def-456", "name": "Bob" }
],
"meta": {
"total": 142,
"page": 1,
"per_page": 20,
"total_pages": 8
}
}
{
"error": {
"code": "validation_error",
"message": "Request validation failed",
"details": [
{ "field": "email", "message": "Must be a valid email address" }
]
}
}
GET /api/v1/users?page=2&per_page=20
장점:
단점:
GET /api/v1/users?cursor=...&limit=20
장점:
단점: