공연 등록

HTTP 요청

공연 등록 요청에 대한 설명입니다.

HTTP Request

POST /api/v1/events HTTP/1.1
Content-Type: multipart/form-data; boundary=6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
x-api-managerId: edf5e929-3d8a-4596-aed0-b74c70e4d3eb
Accept: application/json
Host: localhost:8080

--6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
Content-Disposition: form-data; name=request
Content-Type: application/json

{"title":"공연 제목","description":"공연 설명","place":"공연 장소","artist":"공연 아티스트","eventOpenTime":1745557200.000000000,"ticketingOpenTime":1745989200.000000000,"totalMap":"<svg>...</svg>","areas":[{"label":"A","price":50000,"areaMap":"<svg>...</svg>","seats":[{"cx":0,"cy":0,"row":1,"number":1},{"cx":1,"cy":1,"row":1,"number":2}]},{"label":"B","price":50000,"areaMap":"<svg>...</svg>","seats":[{"cx":100,"cy":200,"row":1,"number":1},{"cx":101,"cy":201,"row":1,"number":2}]}],"eventDatetimes":[1746075600.000000000,1746162000.000000000]}
--6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
Content-Disposition: form-data; name=thumbnail; filename=sample-thumbnail.jpg
Content-Type: image/jpeg

null
--6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm--

Request Headers

Request Body

Request Parts

Part Description

request

공연 정보(JSON)

thumbnail

공연 포스터 이미지 파일 (Multipart)

Request Fields

Path Type Description

title

String

공연 제목

description

String

공연 설명

place

String

공연 장소

artist

String

공연 아티스트

eventOpenTime

Number

공연 오픈 일정

ticketingOpenTime

Number

티켓팅 오픈 일정

totalMap

String

좌석 배치도 이미지 경로

areas

Array

공연 구역 리스트

areas[].label

String

구역 이름

areas[].price

Number

가격

areas[].areaMap

String

구역 지도 SVG

areas[].seats[].cx

Number

좌표 X

areas[].seats[].cy

Number

좌표 Y

areas[].seats[].row

Number

좌석 행

areas[].seats[].number

Number

좌석 번호

eventDatetimes[]

Array

공연 일정 리스트 (ISO 8601)

HTTP 성공 응답

공연 등록 성공 시 반환되는 응답입니다.

HTTP Response

HTTP/1.1 201 Created
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Location: /api/v1/events/08c762a4-359e-41aa-8630-04e139a3ebac
Content-Type: application/json
Content-Length: 1925

{
  "message" : "공연 생성 성공",
  "code" : "0",
  "data" : {
    "id" : "08c762a4-359e-41aa-8630-04e139a3ebac",
    "title" : "공연 제목",
    "description" : "공연 설명",
    "place" : "공연 장소",
    "thumbnail" : "filename",
    "artist" : "공연 아티스트",
    "eventDatetimes" : [ {
      "id" : "822e4b55-eced-48b4-8684-a28ae6f98d5c",
      "datetime" : "2025-05-01T05:00:00Z"
    }, {
      "id" : "acb5bacf-993a-42f7-8b3f-739bcd9b2880",
      "datetime" : "2025-05-02T05:00:00Z"
    } ],
    "eventOpenTime" : "2025-04-25T05:00:00Z",
    "ticketingOpenTime" : "2025-04-30T05:00:00Z",
    "totalMap" : "<svg>...</svg>",
    "areas" : [ {
      "id" : "f5f31806-c18e-4a94-99aa-dadf940586b2",
      "eventId" : "08c762a4-359e-41aa-8630-04e139a3ebac",
      "label" : "A",
      "price" : 50000,
      "areaMap" : "<svg>...</svg>",
      "seats" : [ {
        "id" : "7a7e63b8-b65d-42ad-90bb-81dde13f5dcc",
        "areaId" : "f5f31806-c18e-4a94-99aa-dadf940586b2",
        "cx" : 0,
        "cy" : 0,
        "row" : 1,
        "number" : 1
      }, {
        "id" : "344e022a-04e5-4c7e-b9ab-c56b422357f5",
        "areaId" : "f5f31806-c18e-4a94-99aa-dadf940586b2",
        "cx" : 1,
        "cy" : 1,
        "row" : 1,
        "number" : 2
      } ]
    }, {
      "id" : "1c13cc9f-93f0-4caf-871c-e9a39b32883e",
      "eventId" : "08c762a4-359e-41aa-8630-04e139a3ebac",
      "label" : "B",
      "price" : 50000,
      "areaMap" : "<svg>...</svg>",
      "seats" : [ {
        "id" : "8225560f-afc7-401e-aa58-00f006e70f22",
        "areaId" : "1c13cc9f-93f0-4caf-871c-e9a39b32883e",
        "cx" : 100,
        "cy" : 200,
        "row" : 1,
        "number" : 1
      }, {
        "id" : "08fc690c-adc4-4e1e-b6ea-4b766adb9dad",
        "areaId" : "1c13cc9f-93f0-4caf-871c-e9a39b32883e",
        "cx" : 101,
        "cy" : 201,
        "row" : 1,
        "number" : 2
      } ]
    } ]
  }
}

Response Headers

Name Description

Location

생성된 리소스의 URI

Response Body

{
  "message" : "공연 생성 성공",
  "code" : "0",
  "data" : {
    "id" : "08c762a4-359e-41aa-8630-04e139a3ebac",
    "title" : "공연 제목",
    "description" : "공연 설명",
    "place" : "공연 장소",
    "thumbnail" : "filename",
    "artist" : "공연 아티스트",
    "eventDatetimes" : [ {
      "id" : "822e4b55-eced-48b4-8684-a28ae6f98d5c",
      "datetime" : "2025-05-01T05:00:00Z"
    }, {
      "id" : "acb5bacf-993a-42f7-8b3f-739bcd9b2880",
      "datetime" : "2025-05-02T05:00:00Z"
    } ],
    "eventOpenTime" : "2025-04-25T05:00:00Z",
    "ticketingOpenTime" : "2025-04-30T05:00:00Z",
    "totalMap" : "<svg>...</svg>",
    "areas" : [ {
      "id" : "f5f31806-c18e-4a94-99aa-dadf940586b2",
      "eventId" : "08c762a4-359e-41aa-8630-04e139a3ebac",
      "label" : "A",
      "price" : 50000,
      "areaMap" : "<svg>...</svg>",
      "seats" : [ {
        "id" : "7a7e63b8-b65d-42ad-90bb-81dde13f5dcc",
        "areaId" : "f5f31806-c18e-4a94-99aa-dadf940586b2",
        "cx" : 0,
        "cy" : 0,
        "row" : 1,
        "number" : 1
      }, {
        "id" : "344e022a-04e5-4c7e-b9ab-c56b422357f5",
        "areaId" : "f5f31806-c18e-4a94-99aa-dadf940586b2",
        "cx" : 1,
        "cy" : 1,
        "row" : 1,
        "number" : 2
      } ]
    }, {
      "id" : "1c13cc9f-93f0-4caf-871c-e9a39b32883e",
      "eventId" : "08c762a4-359e-41aa-8630-04e139a3ebac",
      "label" : "B",
      "price" : 50000,
      "areaMap" : "<svg>...</svg>",
      "seats" : [ {
        "id" : "8225560f-afc7-401e-aa58-00f006e70f22",
        "areaId" : "1c13cc9f-93f0-4caf-871c-e9a39b32883e",
        "cx" : 100,
        "cy" : 200,
        "row" : 1,
        "number" : 1
      }, {
        "id" : "08fc690c-adc4-4e1e-b6ea-4b766adb9dad",
        "areaId" : "1c13cc9f-93f0-4caf-871c-e9a39b32883e",
        "cx" : 101,
        "cy" : 201,
        "row" : 1,
        "number" : 2
      } ]
    } ]
  }
}

Response Fields

Path Type Description

code

String

성공 코드

message

String

성공 메시지

data

Object

응답 값

data.id

String

이벤트 ID

data.title

String

공연 제목

data.description

String

공연 설명

data.place

String

공연 장소

data.thumbnail

String

포스터 이미지 URL

data.artist

String

공연 아티스트

data.eventOpenTime

String

공연 오픈 일정 (ISO 8601)

data.ticketingOpenTime

String

티켓팅 오픈 일정 (ISO 8601)

data.totalMap

String

전체 좌석 배치도 URL

data.eventDatetimes

Array

공연 일정 목록

data.eventDatetimes[].id

String

공연 일정 ID

data.eventDatetimes[].datetime

String

공연 일시 (ISO 8601)

data.areas

Array

공연 구역 목록

data.areas[].id

String

구역 아이디

data.areas[].eventId

String

해당 구역의 공연 아이디

data.areas[].label

String

구역 이름

data.areas[].price

Number

구역 가격

data.areas[].areaMap

String

구역 배치도 SVG

data.areas[].seats

Array

좌석 목록

data.areas[].seats[].id

String

좌석 아이디

data.areas[].seats[].areaId

String

해당 좌석의 구역 아이디

data.areas[].seats[].cx

Number

좌석 X 좌표

data.areas[].seats[].cy

Number

좌석 Y 좌표

data.areas[].seats[].row

Number

좌석 행 번호

data.areas[].seats[].number

Number

좌석 번호

HTTP 실패 응답

공연 등록 실패 시 발생할 수 있는 오류들을 분류하여 설명합니다.

유효성 오류

공연 등록 요청 데이터의 유효성 검사 실패 응답입니다.

중복 오류

공연 등록 요청 데이터의 중복 예외로 인한 실패 응답입니다.

파일 업로드 오류

공연 포스터 이미지 업로드 과정에서 예외가 발생했을 때 실패 응답입니다.

기타 요청 오류

공연 등록 요청 과정에서 발생할 수 있는 기타 오류입니다.

공연 목록 조회

HTTP 요청

공연 목록 조회 요청에 대한 설명입니다.

HTTP Request

GET /api/v1/events HTTP/1.1
Content-Type: application/json
Accept: application/json
Host: localhost:8080

Request Headers

Request Body

Request Fields

HTTP 성공 응답

공연 목록 조회 성공 시 반환되는 응답입니다.

HTTP Response

HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
Content-Length: 1223

{
  "message" : "전체 공연 목록 조회 성공",
  "code" : "0",
  "data" : [ {
    "id" : "942bc64b-4638-422a-a0db-7eb87ef12b31",
    "title" : "공연 제목 1",
    "description" : "공연 설명",
    "place" : "공연 장소",
    "thumbnail" : "sample-thumbnail.png",
    "artist" : "공연 아티스트",
    "eventDatetimes" : [ {
      "id" : "4fa677aa-efd2-4d97-b1a6-320a5ceb5abe",
      "datetime" : "2025-05-01T05:00:00Z"
    }, {
      "id" : "f7ceccf3-5117-433a-a7ae-cfcab34c3080",
      "datetime" : "2025-05-02T05:00:00Z"
    } ],
    "eventOpenTime" : "2025-04-25T05:00:00Z",
    "ticketingOpenTime" : "2025-04-30T05:00:00Z"
  }, {
    "id" : "6ed74e28-e6d2-4d73-ae58-710e1785e1c4",
    "title" : "공연 제목 2",
    "description" : "공연 설명",
    "place" : "공연 장소",
    "thumbnail" : "sample-thumbnail.png",
    "artist" : "공연 아티스트",
    "eventDatetimes" : [ {
      "id" : "f857768e-f36f-4df6-9bc7-d54fd73ed409",
      "datetime" : "2025-05-01T05:00:00Z"
    }, {
      "id" : "c8db9fa5-390d-43be-b10d-1ef224a6b36e",
      "datetime" : "2025-05-02T05:00:00Z"
    } ],
    "eventOpenTime" : "2025-04-25T05:00:00Z",
    "ticketingOpenTime" : "2025-04-30T05:00:00Z"
  } ]
}

Response Headers

Response Body

{
  "message" : "전체 공연 목록 조회 성공",
  "code" : "0",
  "data" : [ {
    "id" : "942bc64b-4638-422a-a0db-7eb87ef12b31",
    "title" : "공연 제목 1",
    "description" : "공연 설명",
    "place" : "공연 장소",
    "thumbnail" : "sample-thumbnail.png",
    "artist" : "공연 아티스트",
    "eventDatetimes" : [ {
      "id" : "4fa677aa-efd2-4d97-b1a6-320a5ceb5abe",
      "datetime" : "2025-05-01T05:00:00Z"
    }, {
      "id" : "f7ceccf3-5117-433a-a7ae-cfcab34c3080",
      "datetime" : "2025-05-02T05:00:00Z"
    } ],
    "eventOpenTime" : "2025-04-25T05:00:00Z",
    "ticketingOpenTime" : "2025-04-30T05:00:00Z"
  }, {
    "id" : "6ed74e28-e6d2-4d73-ae58-710e1785e1c4",
    "title" : "공연 제목 2",
    "description" : "공연 설명",
    "place" : "공연 장소",
    "thumbnail" : "sample-thumbnail.png",
    "artist" : "공연 아티스트",
    "eventDatetimes" : [ {
      "id" : "f857768e-f36f-4df6-9bc7-d54fd73ed409",
      "datetime" : "2025-05-01T05:00:00Z"
    }, {
      "id" : "c8db9fa5-390d-43be-b10d-1ef224a6b36e",
      "datetime" : "2025-05-02T05:00:00Z"
    } ],
    "eventOpenTime" : "2025-04-25T05:00:00Z",
    "ticketingOpenTime" : "2025-04-30T05:00:00Z"
  } ]
}

Response Fields

Path Type Description

code

String

성공 코드

message

String

성공 메시지

data

Array

응답 값

data

Array

이벤트 목록

data[].id

String

이벤트 ID

data[].title

String

공연 제목

data[].description

String

공연 설명

data[].place

String

공연 장소

data[].thumbnail

String

포스터 이미지 URL

data[].artist

String

공연 아티스트

data[].eventOpenTime

String

공연 오픈 일정 (ISO 8601)

data[].ticketingOpenTime

String

티켓팅 오픈 일정 (ISO 8601)

data[].eventDatetimes

Array

공연 일정 목록

data[].eventDatetimes[].id

String

공연 일정 ID

data[].eventDatetimes[].datetime

String

공연 일시 (ISO 8601)

HTTP 실패 응답

공연 목록 조회 실패 시 발생할 수 있는 오류들을 분류하여 설명합니다.

단일 공연 조회

HTTP 요청

단일 공연 조회 요청에 대한 설명입니다.

HTTP Request

GET /api/v1/events/a2dae6cb-84fa-419b-a687-7f13c7415d65 HTTP/1.1
Content-Type: application/json
Accept: application/json
Host: localhost:8080

Path Parameters ./api/v1/events/{eventId}

Parameter Description

eventId

조회하고 싶은 공연 아이디

Request Headers

Request Body

Request Fields

HTTP 성공 응답

단일 공연 조회 성공 시 반환되는 응답입니다.

HTTP Response

HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
Content-Length: 641

{
  "message" : "단일 공연 조회 성공",
  "code" : "0",
  "data" : {
    "id" : "a2dae6cb-84fa-419b-a687-7f13c7415d65",
    "title" : "공연 제목",
    "description" : "공연 설명",
    "place" : "공연 장소",
    "thumbnail" : "sample-thumbnail.png",
    "artist" : "공연 아티스트",
    "eventDatetimes" : [ {
      "id" : "70e72f11-a39c-43f3-91ba-71f4503d83ca",
      "datetime" : "2025-05-01T05:00:00Z"
    }, {
      "id" : "e6860f63-c16f-46e0-9bad-65457b0dd90a",
      "datetime" : "2025-05-02T05:00:00Z"
    } ],
    "eventOpenTime" : "2025-04-25T05:00:00Z",
    "ticketingOpenTime" : "2025-04-30T05:00:00Z"
  }
}

Path Parameters ./api/v1/events/{eventId}

Parameter Description

eventId

조회하고 싶은 공연 아이디

Response Headers

Response Body

{
  "message" : "단일 공연 조회 성공",
  "code" : "0",
  "data" : {
    "id" : "a2dae6cb-84fa-419b-a687-7f13c7415d65",
    "title" : "공연 제목",
    "description" : "공연 설명",
    "place" : "공연 장소",
    "thumbnail" : "sample-thumbnail.png",
    "artist" : "공연 아티스트",
    "eventDatetimes" : [ {
      "id" : "70e72f11-a39c-43f3-91ba-71f4503d83ca",
      "datetime" : "2025-05-01T05:00:00Z"
    }, {
      "id" : "e6860f63-c16f-46e0-9bad-65457b0dd90a",
      "datetime" : "2025-05-02T05:00:00Z"
    } ],
    "eventOpenTime" : "2025-04-25T05:00:00Z",
    "ticketingOpenTime" : "2025-04-30T05:00:00Z"
  }
}

Response Fields

Path Type Description

code

String

성공 코드

message

String

성공 메시지

data

Object

응답 값

data

Object

이벤트 목록

data.id

String

이벤트 ID

data.title

String

공연 제목

data.description

String

공연 설명

data.place

String

공연 장소

data.thumbnail

String

포스터 이미지 URL

data.artist

String

공연 아티스트

data.eventOpenTime

String

공연 오픈 일정 (ISO 8601)

data.ticketingOpenTime

String

티켓팅 오픈 일정 (ISO 8601)

data.eventDatetimes

Array

공연 일정 목록

data.eventDatetimes[].id

String

공연 일정 ID

data.eventDatetimes[].datetime

String

공연 일시 (ISO 8601)

HTTP 실패 응답

단일 공연 조회 실패 시 발생할 수 있는 오류들을 분류하여 설명합니다.

공연 삭제

HTTP 요청

공연 삭제 요청에 대한 설명입니다.

HTTP Request

DELETE /api/v1/events/e5794779-227c-4890-9212-52ef44ae7f4d HTTP/1.1
Content-Type: application/json
Accept: application/json
Host: localhost:8080

Request Headers

Request Body

Request Fields

HTTP 성공 응답

공연 삭제 성공 시 반환되는 응답입니다.

HTTP Response

HTTP/1.1 204 No Content
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
Content-Length: 56

{
  "message" : "공연 삭제 성공",
  "code" : "0"
}

Response Headers

Response Body

{
  "message" : "공연 삭제 성공",
  "code" : "0"
}

Response Fields

Path Type Description

code

String

성공 코드

message

String

성공 메시지

HTTP 실패 응답

공연 삭제 실패 시 발생할 수 있는 오류들을 분류하여 설명합니다.