Skip to content
민정 edited this page Jun 1, 2025 · 52 revisions

Welcome to the JZP wiki!

📌 API 명세서

1. 영화 그룹별 추천 영화 조회

POST /api/movie/showmovie/{group}

  • Path Variable:
    • group: String ("youth", "old")
  • Request Body:
    • movieCalendar: Date (영화 상영일)
  • Response:
    • success: Boolean
    • message: String
    • movieCalendar: Date (요청된 영화 날짜)
    • movies: List<MovieResponse> (영화 목록)
    • times: List<MovieScheduleResponse> (영화시간 별 정보)

Request Example:

{
    "movieCalendar": "2025-02-25"
}

response example:

{
    "movieCalendar": "2025-02-15T00:00:00.000+00:00",
    "movies": [
        {
            "tmdbMovieId": 549509,
            "movieImage": "https://image.tmdb.org/t/p/w500/dKFjxIZ6tPAUQInMKZCE3BfcrO2.jpg",
            "movieName": "브루탈리스트",
            "movieType": "드라마",
            "movieRating": 15,
            "movieTime": null,
            "movieSeatRemain": 0,
            "movieTheater": null,
            "movieGrade": "ALL",
            "times": [
                {
                    "movieId": "4b898010-ab1f-4b52-aca8-b70b2d49ff20",
                    "movieTime": "11:50~15:25",
                    "movieSeatRemain": 72,
                    "movieTheater": "2관"
                },
                {
                    "movieId": "4f739c07-5027-41ff-9f86-37eb0cb0379d",
                    "movieTime": "12:05~15:40",
                    "movieSeatRemain": 72,
                    "movieTheater": "3관"
                },
                {
                    "movieId": "765f35a3-fbbe-4829-8cf6-dde558230e93",
                    "movieTime": "20:05~23:40",
                    "movieSeatRemain": 72,
                    "movieTheater": "2관"
                },
                {
                    "movieId": "dfb6b379-85ec-447e-803a-40b900ae88a7",
                    "movieTime": "23:20~02:55",
                    "movieSeatRemain": 72,
                    "movieTheater": "3관"
                }
            ]
        },
        {
            "tmdbMovieId": 1201012,
            "movieImage": "https://image.tmdb.org/t/p/w500/1K1PqJxOPHtsEPQLP243EJPsOvu.jpg",
            "movieName": "둠 담",
            "movieType": "코미디, 로맨스, 액션",
            "movieRating": 20,
            "movieTime": null,
            "movieSeatRemain": 0,
            "movieTheater": null,
            "movieGrade": "15",
            "times": [
                {
                    "movieId": "aa502760-ff6c-4556-a6d5-3fdf94f22274",
                    "movieTime": "16:30~18:19",
                    "movieSeatRemain": 72,
                    "movieTheater": "1관"
                },
                {
                    "movieId": "c45f673d-ae14-4e9b-b4ad-a8c4dbd344ed",
                    "movieTime": "10:15~12:04",
                    "movieSeatRemain": 72,
                    "movieTheater": "3관"
                },
                {
                    "movieId": "f1508ab8-a66b-4ac9-bc16-216835348994",
                    "movieTime": "14:05~15:54",
                    "movieSeatRemain": 72,
                    "movieTheater": "3관"
                },
                {
                    "movieId": "fb26e17c-ebb7-4479-9819-9e151f70664e",
                    "movieTime": "15:00~16:49",
                    "movieSeatRemain": 72,
                    "movieTheater": "2관"
                }
            ]
        }
}

2. 영화 시간 저장

POST /api/movie/time

  • Request Body:
    • movieId: UUID
    • movieTime: String
    • movieTheater: String
  • Response:
    • status: String

Request Example:

{
    "movieId": "36366334-3738-3431-2d65-3165622d3131",
    "movieTime": "09:45~11:45",
    "movieTheater": "1관"
}

response example:

  • success
{
    "status": "success"
}
  • failed
{
    "status": "failed",
    "message": "Movie not found"
}

3. 해당 시간 영화 불러오기

GET /api/movie/movietime

  • Response:
    • movieId: UUID
    • movieCalendar: Date
    • movieImage: String
    • movieType: String
    • movieTime: String
    • movieRating: Int
    • movieTheater: String
    • movieGrade": String
    • movieSeat": String
    • movieSeatRemain": Int

response example:

    {
        "movieId": "7c96956f-971f-4465-917b-7782381c4622",
        "movieImage": "https://image.tmdb.org/t/p/w500/7FlD5tJbYVtyJkRnhvGYqsMQVou.jpg",
        "movieName": "백 인 액션",
        "movieType": "액션, 코미디",
        "movieRating": 19,
        "movieTime": "22:35~00:29",
        "movieTheater": "2관",
        "movieGrade": "ALL",
        "movieSeat": "A3,A4",
        "movieSeatRemain": 70
    }

4. 영화 좌석 저장

POST /api/movie/seat

  • Request Body:

    • movieId : UUID

    • movieName : String

    • movieTime : String
    • movieSeat : String

    • movietheater : String
  • Response:

    • success: Boolean
    • message: String
    • movieSeatRemain: int

Request Example:

{
    "movieId": "94348aae-3ad4-44d2-a5c6-f2b632e181f5",
    "movieName": "무파사: 라이온 킹",
    "movieTime": "14:35~16:33",
    "movieSeat":"A9",
    "movieTheater": "2관"

}

response example:

  • success
{
    "movieSeatRemain": 68,
    "success": true,
    "movieId": "94348aae-3ad4-44d2-a5c6-f2b632e181f5",
    "movieSeat": "A1,A2,B2,A9"
}
  • failed
{
    "success": false,
    "message": "해당 좌석을 예매할 수 없습니다."
}

5. 영화 인원수 저장

POST /api/movie/customer

  • Request Body:
    • movieId: UUID
    • movieCustomerDisabled: int
    • movieCustomerYouth: int
    • movieCustomerAdult: int
    • movieCustomerOld: int
  • Response:
    • status: String

Request Example:

{
    "movieId": "36366334-3738-3431-2d65-3165622d3131",
    "movieCustomerDisabled": 0,
    "movieCustomerYouth": 3,
    "movieCustomerAdult": 2,
    "movieCustomerOld": 1,
}

response example:

  • success
{
    "status": "success"
}
  • failed
{
    "status": "failed",
    "message": "영화 정보를 찾을 수 없습니다."
}

6. 영화 결제내역 조회

GET /api/movie/payment/history

response example:

  • success
{
    "movieHistory": [
        {
            "movie": {
                "movieImage": "https://image.tmdb.org/t/p/w500/63tvLp9pYygvAaqWpikjTq9FHy7.jpg",
                "movieType": "액션, 드라마",
                "movieRating": 3,
                "movieTime": "12:35~14:25",
                "movieSeatRemain": 70,
                "movieGrade": "ALL",
                "movieId": "ce78fe94-d56b-44bc-a09c-b18df3fde828",
                "movieName": "De lydløse",
                "movieSeat": ["D2","D3"],
                "movieCalendar": "2025-04-13",
                "movieTheater": "1관"
            },
            "price": {
                "youthPrice": 0,
                "oldPrice": 0,
                "adultPrice": 30000,
                "disabledPrice": 0
            },
            "movieCustomer": {
                "movieCustomerAdult": 2,
                "movieCustomerDisabled": 0,
                "movieCustomerYouth": 0,
                "movieCustomerOld": 0
            },
            "ticketId": 5777339749097827
        }
    ],
    "totalPrice": 30000
}

7. 영화 예매내역 조회

GET/api/movie/ticket

{
    "movie": {
        "movieImage": "https://image.tmdb.org/t/p/w500/63tvLp9pYygvAaqWpikjTq9FHy7.jpg",
        "movieType": "액션, 드라마",
        "movieRating": 3,
        "movieTime": "12:35~14:25",
        "movieSeatRemain": 70,
        "movieGrade": "ALL",
        "movieId": "ce78fe94-d56b-44bc-a09c-b18df3fde828",
        "movieName": "De lydløse",
        "movieCalendar": "2025-04-13",
        "movieSeat": ["D2","D3"],
        "movieTheater": "1관"
    },
    "movieCustomer": {
        "movieCustomerAdult": 2,
        "movieCustomerDisabled": 0,
        "movieCustomerYouth": 0,
        "movieCustomerOld": 0
    },
    "ticketId": 5777339749097827
}

8. 홈화면 배너 불러오기

get /api/movie/banner

Resopnse Example:

{
    "movieImage" :"http://3.106.89.95/images/harry2.jpg"
}

9. 예매내역 전송

GET/api/movie/sendTicket

{
[영화_예매알림]
[Web발신]


영화명: 브루탈리스트
예매번호: 1234567890123456
좌석: A2,A3
상영일시: 11:50~15:25

영화 상영시작 10분전에 입장해주세요.
}

10. 예매내역 전송(폰번호만 입력)

POST /api/movie/sendTicketNum

  • Request Body:
    • phoneNumber: String

Request Example:

{
"phoneNumber":"01012345678"
}

response example:

{
[영화_예매알림]
[Web발신]


영화명: 브루탈리스트
예매번호: 1234567890123456
좌석: A2,A3
상영일시: 11:50~15:25

영화 상영시작 10분전에 입장해주세요.
}

11. 예매내역 출력

POST /api/movie/Reservation

  • Request Body:
    • ticketId: Long
    • phoneNumber: String
  • Response:
    • movieImage: String
    • movieTime: String
    • movieGrade: String
    • movieCalendar: Date
    • movieSeat: String
    • movieTheater: String
    • createdAt: Date
    • ticketId: Long

Request Example:

{

"ticketId":"1234567890123456",
"phoneNumber":"01012345678"

}

response example:

  • success
{
    "movie": {
        "movieImage": "https://image.tmdb.org/t/p/w500/dKFjxIZ6tPAUQInMKZCE3BfcrO2.jpg",
        "movieTime": "11:50~15:25",
        "movieGrade": "ALL",
        "movieName": "브루탈리스트",
        "movieCalendar": "2025-02-24",
        "movieSeat": "A2,A3",
        "movieTheater": "2관"
    },
    "ticket": {
        "createdAt": "2025-02-24T12:10:57.714+00:00",
        "ticketId": "1234567890123456"
    }
}

12. 나이전송

POST /api/movie/agegroup

  • Request Body:
    • ageGroup: String

Request Example:

{

"ageGroup":"아이"

}

response example:

  • success
{
"나이 전송 성공"
}

13. 나이전송

GET /api/movie/user

response example:

  • success
{
"아이"
}

14. kakaopay 호출

GET /api/movie/pay

response example:

  • success
{
"https://online-payment.kakaopay.com/mockup/bridge/pc/pg/one-time/payment/2d54ac74e6a630998fd807510c4efd43ebad508883dd6d05604d64719537af43"
}

15. kakaopay 결제 성공

GET /api/movie/pay

response example:

  • success
{
"결제 성공. pg_token: 2b31a7ab92984f1c346f"
}