Skip to content

v2_programspec_collection

LifeSatin edited this page Oct 7, 2026 · 27 revisions

프로그램 정의서 - 보관함 상세 페이지

장소 탭

보관함 상세 페이지 - 장소 탭 보관함 상세 페이지 - 장소 탭 - 지역 필터

필요한 API

  • 보관한 장소 목록 조회 API(GET /api/v2/member/saved-journey?type=place&filterBy=location)

    • type: 장소, 이벤트, 코스 (String)

    • filterBy: 필터링 기준 (String)

      • 지역 기반 필터링만 제공하므로 "location"만 유효

응답 본문으로 필요한 값:

각 장소의

  • 보관함 ID (링크 제공용)
  • 이름
  • 카테고리 (카페 등)
  • 지역 (시+구)
  • 설명
{
  "places": {
    {
      "place_id": Integer,
      "name": String,
      "category": String,
      "description": String,
      "address_sg": String (시 + 구)
    },
    ...
  }
}

의문점

  • '전체 유형'의 정렬 기준은 화면 정의서에 의하면 더미 값임. 더미 값이 맞는지?
  • 장소 정렬의 기준이 될 장소는 화면 정의서에 나온 예시처럼 서울, 경기, ... 인지, 아니면 화면 정의서에 기술된 대로 모든 시, 도를 포함하는 지? (해결)
    • 모든 도와 특별시/광역시로 제한하는 것으로 결정됨 (10-07)

이벤트 탭

보관함 상세 페이지 - 이벤트 탭 보관함 상세 페이지 - 지난 이벤트 탭

지난 이벤트 탭은 이벤트 탭에 합병될 예정

필요한 API

  • 보관한 이벤트 조회 API(GET /api/v2/member/saved-journey?type=event&enableEnded=true)

    • type: 장소, 이벤트, 코스 (String)
    • enableEnded: 지난 이벤트를 표시할 지 여부 (Boolean)

응답 본문으로 필요한 값:

각 이벤트의

  • 보관함 ID (링크 제공용)
  • 이름
  • 카테고리
  • 설명
  • 시작일 (미정 가능)
  • 마감일 (미정 가능)
  • 진행될 장소의 주소 (시+구)
{
  "events": {
    {
      "event_id": Integer,
      "name": String,
      "category": String,
      "description": String,
      "start_date": Date("yyyy-mm-dd", Nullable),
      "end_date": Date("yyyy-mm-dd", Nullable),
      "place" : {
        "name": String,
        "address_sg": String(시 + 구)
      }
    },
    ...
  }
}

정보

이벤트는 시작일, 종료일을 가져야 하며, Null이 가능함

의문점

  • 진행될 장소라는 게 매우 애매함 (해결)
  • 좀 더 명확한 기준을 정하면 좋을 것 같음 (해결)
  • 영상 분석 API에서 AI 서버가 장소명 정도는 추가로 줘야 할 듯. (해결)
    • 필드에서 건물명 제거(10-07)

코스 탭

보관함 상세 페이지 - 코스 탭 보관함 상세 페이지 - 코스 탭 - 지역 필터

필요한 API

  • 보관한 코스 조회 API(GET /api/v2/member/saved-journey?type=course&filterBy=location)

    • type: 장소, 이벤트, 코스 (String)

    • filterBy: 필터링 기준 (String)

      • 지역 기반 필터링만 제공하므로 "location"만 유효

응답 본문으로 필요한 값:

각 코스의

  • 보관함 ID (링크 제공용)
  • 이름
  • 지역(시 + 구)
  • 구성 장소/이벤트 수
  • 총 소요 시간 (시간 단위)
  • 저장일
  • 구성 장소/이벤트
    • 순번
    • 이름
    • 카테고리 (카페, 이벤트, 등...)
    • 종료 여부 (이벤트의 경우)
{
  "courses": {
    {
      "course_id": Integer,
      "name": String,
      "address_sg": String (시 + 구),
      "duration_hours": Integer,
      "save_date": Date("YYYY-MM-DD"),
      "stops": {
        "count": Integer,
        "items": {
          {
            "sequence": Integer,
            "stop_id": Integer,
            "name": String,
            "type": String,
            "category": String,
            "start_date": Date("YYYY-MM-DD", Nullable(type="event"가 아닐 시)),
            "end_date": Date("YYYY-MM-DD", Nullable(type="event"가 아닐 시))
          },
          ...
        }
      } 
    },
    ...
  }
}

정보

코스 후보에 운영 기간이 null인 이벤트들은 포함될 수 없다

의문점

장소 탭과 동일

예외 처리

보관함 상세 페이지 - 조건에 해당하는 결과 없음 보관함 상세 페이지 - 조회 실패 보관함 상세 페이지 - 조회 재시도
  • 각 조회 요청 API는 선택한 조건에 해당할 항목이 없을 시 빈 리스트를 반환해야 함
  • 각 조회 요청 API는 타임아웃 예외 시 응답 결과를 구현되어야 함

Clone this wiki locally