회원 가입 / 로그인

POST /api/auth/signup 요청 값 description

name type description 필수 여부
username String 로그인 용 사용자 이름(중복 불가) 0
email String 이메일 형식 (중복 불가) 0
password password 8자 이상, 소문자 + 대문자 하나 이상 0
nickname String 사용자 별명(중복 가능) 0
Method URL 설명 Status Code Request Body Response
POST /api/auth/signup 회원 가입 성공 : 200 OK
실패 :400 Bad Request {
”username”: “login”,
”email” :  “ a@a.com”,
”password” :  “Password!123”,
”nickname” :  “nickname”,
“userRole” : “USER”

} | { "success": true, "message": "회원 가입이 완료되었습니다.", "data": { "id": 1, "username": "login", "email": "a@a.com", "nickname": "nickname", "role": "USER", "createdAt": "2024-03-21T10:00:00Z" }, "timestamp": "2024-03-21T10:00:00Z" } | | POST | /api/auth/signin | 로그인 | 성공 : 200 OK 실패 : 401 Unauthorized | { ”username”: “login”, ”password” : “Password!123” } | { "success": true, "message": "로그인이 완료되었습니다.", "data": { "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJqb2huZG9lIiwiaWF0IjoxNTE2MjM5MDIyLCJleHAiOjE1MTYzMjU0MjJ9" }, "timestamp": "2024-03-21T10:00:00Z" } | | POST | /api/users/withdraw | 회원 탈퇴 | 성공 : 200 OK 실패 :400 Bad Request | {”password” : “Password!123”} | { "success": true, "message": "회원 탈퇴가 완료되었습니다.", "data": null, "timestamp": "2024-03-21T10:00:00Z" } |

콘서트

POST

name type description 필수 여부
concertName String 콘서트 이름 0
date LocalDateTime 콘서트 일자 (오늘이거나 오늘 이후) 0
venue String 콘서트 장 이름 0
concertId Long 콘서트 고유번호 0
rowLabel Char 콘서트 장 시트 열 0
searchText String 검색 조건 콘서트 명, 콘서트 장 통합검색 (검색어 포함 contain) X
searchStartDate LocalDateTime 검색 조건 시작 일시 X
searchEndDate LocalDateTime 검색 조건 끝 일시 X
Method URL 설명 Status Code Request Body Response
POST /api/admin/concerts 콘서트 생성 성공 : 200 OK
실패 :400 Bad Request

or

401 Unauthorized | { "concertName": "아리아나 그란데 콘서트", "date" : "2025-12-15T18:00", "venue" : "고척돔" } | { "success": true, "message": "콘서트 생성에 성공했습니다.", "data": { "id": 456, “concertName": "아리아나 그란데 콘서트", ”date” : “2025-12-15T18:00”, ”venue” : “일산 킨텍스”, "remainingTickets": 52 }, "timestamp": "2024-03-21T10:00:00Z" } | | PATCH | /api/admin/concerts/{id} | 콘서트 수정 | 성공 : 200 OK 실패 :400 Bad Request

or

401 Unauthorized | { "concertName": "아리아나 그란데 콘서트", "date" : "2025-12-23T18:00", "venue" : "예술의전당" } | { "success": true, "message": "콘서트 수정에 성공했습니다.", "data": { "id": 456, “concertName": "아리아나 그란데 콘서트", ”date” : “2025-12-23T18:00”, ”venue” : “서울 고척돔”, "remainingTickets": 52 }, "timestamp": "2024-03-21T10:00:00Z" } | | DELETE | /api/admin/concerts/{concertId} | 콘서트 삭제 | 성공 : 200 OK 실패 :400 Bad Request

or

401 Unauthorized | | { "success": true, "message": "콘서트 삭제에 성공했습니다.", "data": { null }, "timestamp": "2024-03-21T10:00:00Z" } | | GET | /api/concerts | 콘서트 검색 | 성공 : 200 OK 실패 :400 Bad Request | @RequestParam String searchText required false

@RequestParam LocalDateTime searchStartDate required false

@RequestParam LocalDateTime searchEndDate required false | { "success": true, "message": "콘서트 검색에 성공했습니다.", "data": { [ "id": 456, “concertName": "아리아나 그란데 콘서트", ”date” : “2025-12-15T18:00”, ”venue” : “일산 킨텍스”, "remainingTickets": 52 ], "totalElements": 1, "totalPages": 1, "size": 10, "number": 0 }, "timestamp": "2024-03-21T10:00:00Z" } | | GET | /api/concerts/{concertId} | 콘서트 단건 조회(상세) | 성공 : 200 OK 실패 :400 Bad Request | | { "success": true, "message": "콘서트 조회에 성공했습니다.", "data": { "id": 456, “concertName": "아리아나 그란데 콘서트", ”date” : “2025-12-15T18:00”, ”venue” : “일산 킨텍스”, "remainingTickets": 52 }, "timestamp": "2024-03-21T10:00:00Z" } | | GET | /api/concerts/{concertId}/seats/{rowLabel} | 콘서트 좌석 조회 | 성공 : 200 OK 실패 :400 Bad Request | | { "success": true, "message": "콘서트 좌석 조회에 성공했습니다.", "data": { [ { "seatId": 101, "label": "A1", "rowLabel": "A", "column": 1, "isReserved": false }, { "seatId": 102, "label": "A2", "rowLabel": "A", "column": 2, "isReserved": true }, …. ] }, "timestamp": "2024-03-21T10:00:00Z" } |

사용자

name type description 필수 여부
userId Long 사용자 고유 번호 0
username String 사용자 이름 0
nickname String 사용자 별명 0
Method URL 설명 Status Code Request Body Response
GET /api/admin/users 사용자 리스트 조회 성공 : 200 OK
실패 :400 Bad Request @RequestParam String username {
"success": true,
"message": “프로필 조회가 완료되었습니다.",
"data": {
  [
    "id": 1,
    "username": "login",
    "email": "a@a.com",
    "nickname": "nickname",
    "role": "USER",
    "createdAt": "2024-03-21T10:00:00Z"
  ]
        "totalElements": 1,
        "totalPages": 1,
        "size": 10,
        "number": 0
},
"timestamp": "2024-03-21T10:00:00Z"

} | | GET | /api/admin/users/{userId} | 사용자 조회 | 성공 : 200 OK 실패 :400 Bad Request | | { "success": true, "message": “프로필 조회가 완료되었습니다.", "data": { "id": 1, "username": "login", "email": "a@a.com", "nickname": "nickname", "role": "USER", "createdAt": "2024-03-21T10:00:00Z" }, "timestamp": "2024-03-21T10:00:00Z" } | | PATCH | /api/admin/users/{userId} | 관리자 용 사용자 수정 | 성공 : 200 OK 실패 :400 Bad Request

or

401 Unauthorized | { ”username”: “수정”, ”nickname” : “바뀐 이름”, “userRole” : “ADMIN” } | { "success": true, "message": “프로필 수정이 완료되었습니다.", "data": { "id": 1, "username": "수정", "email": "a@a.com", "nickname": "바뀐 이름", "role": "USER", "createdAt": "2024-03-21T10:00:00Z" }, "timestamp": "2024-03-21T10:00:00Z" } | | GET | /api/users/my | 본인 조회 | 성공 : 200 OK 실패 : 401 Unauthorized | | { "success": true, "message": “프로필 조회가 완료되었습니다.", "data": { "id": 1, "username": "login", "email": "a@a.com", "nickname": "nickname", "role": "USER", "createdAt": "2024-03-21T10:00:00Z" }, "timestamp": "2024-03-21T10:00:00Z" } | | PATCH | /api/users/my | 본인 수정 | 성공 : 200 OK 실패 :400 Bad Request

or

401 Unauthorized | { ”username”: “수정”, ”nickname” : “바뀐 이름” } | { "success": true, "message": “프로필 수정이 완료되었습니다.", "data": { "id": 1, "username": "수정", "email": "a@a.com", "nickname": "바뀐 이름", "role": "USER", "createdAt": "2024-03-21T10:00:00Z" }, "timestamp": "2024-03-21T10:00:00Z" } |

티케팅

name type description 필수 여부
concertId Long 사용자 고유 번호 0
orderNo Long 티켓 주문 번호 0
seatIds ArrayList<Long> 좌석 번호 배열 0
Method URL 설명 Status Code Request Body Response
POST /api/concerts/{concertId}/tickets 티켓 예매 성공 : 200 OK실패 :400 Bad Requestor409 Conflict {"seatIds": [101, 102]} {
"success": true,
"message": "콘서트 예매에 성공했습니다.",
"data": {
   "message": "Tickets reserved successfully",
   "ticketIds": [999, 1000],
   "concertId": 5
},
"timestamp": "2024-03-21T10:00:00Z"

} | | GET | /api/users/my/tickets | 사용자 티켓 조회 | 성공 : 200 OK 실패 :400 Bad Request | | { "success": true, "message": “티켓 조회가 완료되었습니다.", "data": { “tickets”: [ { "ticketId": 23, "concertId": 456, "seat": "A-12", “orderId” : 1, “price”:1200 } ], "totalElements": 1, "totalPages": 1, "size": 10, "number": 0 }, "timestamp": "2024-03-21T10:00:00Z" } | | DELETE | /api/users/my/tickets/{orderId} | 티켓 예매 취소 | 성공 : 200 OK실패 :400 Bad Requestor409 Conflict | | { "success": true, "message": "주문 취소에 성공했습니다.", "data": { "message": "Tickets canceled successfully", "orderNo": 400, "concertId": 5 }, "timestamp": "2024-03-21T10:00:00Z" } |