description: "REST API 설계 컨벤션 - 엔드포인트 네이밍, 응답 형태, 쿼리 파라미터, 에러 포맷" paths:
/companies, /tags, /groups/companies/:id✅ GET /companies → 목록 조회
✅ GET /companies/:id → 단건 조회
✅ POST /companies → 생성
✅ PATCH /companies/:id → 부분 수정
✅ DELETE /companies/:id → 삭제
❌ GET /getCompanies
❌ POST /companies/create
/companies/:id/groups, /groups/:id/members/companies/summary — 랜딩 페이지용 집계 데이터/companies/:id/detail — 단건 + 관계 + 통계 병합:id 파라미터 라우트보다 위에 선언| 용도 | 파라미터 | 예시 |
|---|---|---|
| 정렬 | sort | ?sort=follower, ?sort=name |
| 날짜 필터 | date | ?date=2026-04-06 |
| 페이지네이션 | page, limit | ?page=1&limit=20 |
| 필터 | 필드명 그대로 | ?companyId=3, ?status=active |
?sort= 불필요)400 BadRequest 로 명확한 에러 메시지 반환배열을 직접 반환하거나, 메타데이터가 필요하면 래핑:
// 단순 리스트
[{ "id": 1, "name": "A" }, { "id": 2, "name": "B" }]
// 메타데이터 포함 (페이지네이션 등)
{ "items": [...], "total": 42, "page": 1, "limit": 20 }
객체 직접 반환. 없으면 404.
용도에 맞는 구조 자유롭게. totals, stats 등 명시적 키 사용.
{
"companies": [...],
"independentGroups": [...],
"totals": { "companyCount": 5, "streamerCount": 120 }
}
201 + 생성된 리소스 반환200 + 수정된 리소스 반환204 (No Content)200 + { "ok": true }NestJS 기본 에러 포맷을 따른다:
{
"statusCode": 400,
"message": "사용자에게 보여줄 수 있는 한국어 메시지",
"error": "Bad Request"
}
message 만 전달, 디버깅 정보는 서버 로그에읽기 전용 엔드포인트에는 Cache-Control 헤더를 설정한다:
public, max-age=60~300public, max-age=120/v2/ prefix 도입 검토아직 피드백이 없어요. 첫 번째로 의견을 남겨보세요!