회원 가입 / 로그인
POST /api/auth/signup 요청 값 description
name | type | description | 필수 여부 |
---|---|---|---|
username | String | 로그인 용 사용자 이름(중복 불가) | 0 |
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" } |