Dataset Items API

데이터 아이템 목록 조회, 상세 조회, 주변 검색 엔드포인트입니다.

모든 엔드포인트는 API Key 인증이 필요합니다. 인증 문서를 참고하세요.


GET /v1/datasets/:datasetId/items

데이터셋 내 아이템 목록을 페이지네이션으로 반환합니다.

인증

Authorization: Bearer <API_KEY>

Path 파라미터

파라미터타입필수설명
datasetIdstringYesDataset UUID 또는 slug

Query 파라미터

파라미터타입기본값설명
pagenumber1페이지 번호
limitnumber20페이지 크기 (최대 100)
sortstring"name"정렬 필드: name, createdAt, updatedAt
orderstring"asc"정렬 방향: asc, desc
administrativeAreaCodestring행정구역 코드 필터
categoryCodestring카테고리 코드 필터
parentItemIdstring부모 아이템 필터. "null" 입력 시 루트 아이템만 반환

성공 응답

HTTP 200 OK

{
  "data": [
    {
      "id": "550e8400-e29b-41d4-a716-446655440000",
      "datasetId": "550e8400-e29b-41d4-a716-446655440000",
      "name": "경복궁",
      "description": "서울의 대표 궁궐",
      "administrativeAreaCode": "11",
      "categoryCode": "A01",
      "parentItemId": null,
      "streetAddress": "서울특별시 종로구 사직로 161",
      "addressRegion": null,
      "addressLocality": null,
      "postalCode": null,
      "roadAddress": null,
      "jibunAddress": null,
      "latitude": "37.5796",
      "longitude": "126.9770",
      "thumbnailUrl": null,
      "createdAt": "2025-01-01T00:00:00.000Z",
      "updatedAt": "2025-01-01T00:00:00.000Z"
    }
  ],
  "meta": {
    "page": 1,
    "limit": 20,
    "total": 134
  }
}

에러 응답

HTTP 상태에러 코드설명
400VALIDATION_FAILEDlimit이 100 초과 등 잘못된 파라미터
401UNAUTHORIZED인증 실패
403DATASET_ACCESS_DENIED접근 권한 없음
404NOT_FOUND데이터셋 없음

GET /v1/dataset-items/:itemId

데이터 아이템 상세 정보를 이미지와 함께 반환합니다.

인증

Authorization: Bearer <API_KEY>

Path 파라미터

파라미터타입필수설명
itemIdstringYesDataset item UUID

성공 응답

HTTP 200 OK

{
  "data": {
    "id": "550e8400-e29b-41d4-a716-446655440000",
    "datasetId": "550e8400-e29b-41d4-a716-446655440000",
    "name": "경복궁",
    "description": "서울의 대표 궁궐",
    "administrativeAreaCode": "11",
    "categoryCode": "A01",
    "parentItemId": null,
    "streetAddress": "서울특별시 종로구 사직로 161",
    "addressRegion": null,
    "addressLocality": null,
    "postalCode": null,
    "roadAddress": null,
    "jibunAddress": null,
    "latitude": "37.5796",
    "longitude": "126.9770",
    "thumbnailUrl": null,
    "contactName": "경복궁관리소",
    "telephone": "02-3700-3900",
    "email": null,
    "url": "http://www.royalpalace.go.kr",
    "openingHours": null,
    "extraAttributes": {},
    "dataset": {
      "slug": "tourist-spots",
      "name": "관광지"
    },
    "images": [
      {
        "id": "img-uuid",
        "originalUrl": "https://cdn.example.com/images/original.jpg",
        "cdnUrl": "https://cdn.example.com/images/cdn.jpg",
        "thumbnailSmallUrl": "https://cdn.example.com/images/small.webp",
        "thumbnailMediumUrl": "https://cdn.example.com/images/medium.webp",
        "thumbnailLargeUrl": "https://cdn.example.com/images/large.webp",
        "altText": "경복궁 전경",
        "sortOrder": 0,
        "isPrimary": true
      }
    ],
    "createdAt": "2025-01-01T00:00:00.000Z",
    "updatedAt": "2025-01-01T00:00:00.000Z"
  },
  "meta": {}
}

에러 응답

HTTP 상태에러 코드설명
401UNAUTHORIZED인증 실패
403DATASET_ACCESS_DENIED접근 권한 없음
404NOT_FOUND아이템 없음

GET /v1/dataset-items/nearby

지리 좌표 기준으로 주변 아이템을 거리순으로 반환합니다.

인증

Authorization: Bearer <API_KEY>

Query 파라미터

파라미터타입필수기본값설명
latitudenumberYes위도
longitudenumberYes경도
radiusnumberNo1000검색 반경 (미터, 1~50000)
datasetIdstringNo특정 데이터셋으로 필터링
pagenumberNo1페이지 번호
limitnumberNo20페이지 크기 (최대 100)

성공 응답

HTTP 200 OK

{
  "data": [
    {
      "id": "550e8400-e29b-41d4-a716-446655440000",
      "datasetId": "550e8400-e29b-41d4-a716-446655440000",
      "name": "경복궁",
      "description": "서울의 대표 궁궐",
      "administrativeAreaCode": "11",
      "categoryCode": "A01",
      "streetAddress": "서울특별시 종로구 사직로 161",
      "addressRegion": null,
      "addressLocality": null,
      "postalCode": null,
      "roadAddress": null,
      "jibunAddress": null,
      "latitude": "37.5796",
      "longitude": "126.9770",
      "thumbnailUrl": null,
      "url": "http://www.royalpalace.go.kr",
      "openingHours": null,
      "distance": 350,
      "createdAt": "2025-01-01T00:00:00.000Z"
    }
  ],
  "meta": {
    "page": 1,
    "limit": 20,
    "total": 8
  }
}

추가 응답 필드

필드타입설명
distancenumber검색 좌표로부터의 거리 (미터)

에러 응답

HTTP 상태에러 코드설명
400VALIDATION_FAILED좌표 또는 반경 값이 유효하지 않음
401UNAUTHORIZED인증 실패