Community코딩 & 개발github.com

API 디자이너

산업 표준을 따르는 깔끔하고 예측 가능한 REST API를 설계합니다.

API 디자이너란 무엇인가요?

이 스킬은 소프트웨어 개발자가 일관되고 예측 가능한 REST API를 설계할 수 있도록 안내합니다. 리소스 이름 지정, 식별자 전략, CRUD 작업 및 비CRUD 작업을 포함한 표준 동사, 하위 리소스, 상태 코드, 오류 형식 및 페이지 매김 전략에 대한 체계적인 체크리스트를 제공합니다. 이 스킬은 Claude Code, Cursor, Codex 등 다양한 AI 에이전트 플랫폼과 호환되는 공식 SKILL.md 형식으로 제공되어, 사용자가 쉽게 업로드하여 사용할 수 있습니다. 또한, 설계 결과물로 리소스 모델, 엔드포인트 테이블, 요청/응답 예제, 선택적 OpenAPI 3.1 조각, 그리고 구현 전 결정해야 할 미해결 질문을 요구함으로써 실용적이고 완성도 높은 API 설계를 돕습니다.

지원 대상✓Claude Code~Codex CLI✓Cursor
npx skills add kakarot-oncloud/claude-dev-skills

Installed? Explore more 코딩 & 개발 skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

즐겨 사용하는 AI에게 물어보기

이 에이전트 스킬이 미리 로드된 새 채팅을 엽니다.

문서

API Designer

산업 규칙을 따르는 깔끔하고 예측 가능한 REST API를 설계합니다.

설계 체크리스트

모든 리소스에 대해 다음을 결정합니다:

  1. 리소스 이름 — 복수명사, 소문자, 하이픈 사용 (/user-profiles, /UserProfile 아님).
  2. 식별자 전략 — UUID, 슬러그(slug) 또는 정수; 어떤 것을 사용할지 문서화합니다.
  3. 표준 동사(verbs):
    • GET /resources — 목록 조회 (페이지 매김 + 필터 포함)
    • GET /resources/:id — 단일 리소스 조회
    • POST /resources — 생성
    • PATCH /resources/:id — 부분 업데이트
    • PUT /resources/:id — 전체 교체 (진정한 멱등성이 필요한 경우에만 사용)
    • DELETE /resources/:id — 삭제
  4. 하위 리소스 — /resources/:id/sub-resources 형태로 중첩된 소유권을 표현합니다.
  5. CRUD가 아닌 액션 — POST /resources/:id/actions/<동사> (예: /orders/123/actions/cancel).

상태 코드

  • 200 OK — 성공적인 GET/PATCH/PUT
  • 201 Created — 성공적인 POST (Location 헤더 포함)
  • 204 No Content — 성공적인 DELETE
  • 400 Bad Request — 유효성 검사 실패
  • 401 Unauthorized — 인증 누락/유효하지 않음
  • 403 Forbidden — 인증됨, 권한 없음
  • 404 Not Found — 리소스가 존재하지 않음
  • 409 Conflict — 버전 충돌, 중복
  • 422 Unprocessable Entity — 의미적 유효성 검사 실패
  • 429 Too Many Requests — 속도 제한
  • 500 / 503 — 서버 오류

페이지 매김

커서 기반 페이지 매김(cursor pagination) 을 기본으로 사용합니다 (무제한 목록의 경우):

GET /resources?cursor=<opaque>&limit=50
→ { data: [...], next_cursor: "...", has_more: true }

오프셋 페이지 매김은 작고 유한한 목록에만 사용합니다.

오류 형식

오류를 다음과 같이 반환합니다:

{
  "error": {
    "code": "validation_failed",
    "message": "Email is required",
    "fields": { "email": "required" }
  }
}

결과물 형식

API를 설계할 때 다음을 생성합니다:

  1. 리소스 모델 — 필드, 타입, 필수/선택 여부.
  2. 엔드포인트 테이블 — 메서드, 경로, 목적, 인증 범위.
  3. 요청/응답 예제 — 중요 엔드포인트에 대한 JSON.
  4. OpenAPI 3.1 스니펫 — 요청 시에만 제공 (전체 명세가 아닌 관련 경로만).
  5. 미해결 질문 — 구현 전 사용자가 결정해야 할 사항.

규칙

  1. CRUD 작업에서는 URL에 동사를 넣지 마십시오 (/getUser는 잘못됨; GET /users/:id가 올바름). 동사는 CRUD가 아닌 액션에 사용하는 것은 괜찮습니다.
  2. 일관성을 유지하십시오 — 필드에 snake_case 또는 camelCase 중 하나를 선택하고 계속 사용합니다.
  3. URL에 API 버전을 포함하십시오 (/v1/...) 또는 헤더를 사용하십시오 — 하나를 선택하고 문서화합니다.
  4. 멱등성 — 재시도로부터 안전한 POST 생성은 Idempotency-Key 헤더를 받아야 합니다.
  5. 과도하게 설계하지 마십시오. 사용자에게 3개의 엔드포인트가 필요하면 3개의 엔드포인트만 설계하십시오 — 마이크로서비스 아키텍처가 아닙니다.

관련 스킬