API 문서 템플릿

REST API 엔드포인트 문서화를 위한 Markdown 템플릿. 요청/응답 예시, 오류 코드 포함.

Gist

API 레퍼런스

Base URL: https://api.example.com/v1

인증: 모든 요청에 Authorization: Bearer <token> 헤더가 필요합니다.

응답 형식: Content-Type: application/json


공통 응답 형식

성공

{
  "data": { ... },
  "meta": {
    "timestamp": "2026-05-05T00:00:00Z",
    "requestId": "req_abc123"
  }
}

오류

{
  "error": {
    "code": "RESOURCE_NOT_FOUND",
    "message": "The requested resource was not found.",
    "details": {}
  }
}

공통 오류 코드

HTTP 코드코드설명
400INVALID_REQUEST잘못된 요청 형식
401UNAUTHORIZED인증 필요
403FORBIDDEN권한 없음
404RESOURCE_NOT_FOUND리소스 없음
429RATE_LIMITED요청 한도 초과
500INTERNAL_ERROR서버 오류

엔드포인트

아이템 목록 조회

GET /items

쿼리 파라미터

파라미터타입필수기본값설명
pageinteger아니오1페이지 번호
limitinteger아니오20페이지당 항목 수 (최대 100)
qstring아니오-검색 키워드

응답 예시 200 OK

{
  "data": [
    {
      "id": 1,
      "name": "아이템 이름",
      "createdAt": "2026-05-05T00:00:00Z"
    }
  ],
  "meta": {
    "total": 42,
    "page": 1,
    "limit": 20
  }
}

아이템 생성

POST /items

요청 바디

{
  "name": "string (필수, 최대 100자)",
  "description": "string (선택)",
  "price": "number (필수, 0 이상)"
}

응답 예시 201 Created

{
  "data": {
    "id": 42,
    "name": "새 아이템",
    "description": null,
    "price": 9900,
    "createdAt": "2026-05-05T00:00:00Z"
  }
}

아이템 수정

PUT /items/{id}

경로 파라미터

파라미터타입설명
idinteger아이템 ID

응답 예시 200 OK — 수정된 아이템 객체 반환


아이템 삭제

DELETE /items/{id}

응답 204 No Content