API명세서 Notion에서 보기 : Link
PAGE[와이어프레임 페이지 아이디] | 분류 | 메서드 | 요청주소 | 인풋 데이터 | 인풋 데이터 타입 | 아웃풋 데이터 | 아웃풋 데이터 타입 | 담당 | 구현여부 | 비고 | 우선순위 |
---|---|---|---|---|---|---|---|---|---|---|---|
#041 | 공연 생성 | POST | /performance/create | RequestBody { title: (String), user_id : (metamask address), start_time : (datetime), end_time : (datatime), location: (String), price: (double), max_seats: (int), poster : (ipfs url), desc: (String), etc : (String) } | application/json | { status_code : (int) message : (String) body : { performance_id: (int) left_minute_perform : (int) } } | Json | 스프링 | 낮음 | ||
#021 | 티켓 예매 홈 | GET | /performance/home/{userId} | PathVariable { user_id: (String) } | String | { status_code: (int) message: (String) body : { like_performance: (array), 공연dto user_nickname: (String) open_soon : (array) , 공연dto perform_soon : (array) , 공연dto } } | Json/list | 스프링 | (오픈예정 공연 목록, 공연임박 홈화면, 좋아요 홈화면)
오픈 예정 공연목록 : 오픈 예정 이미지 해시값, 공연id 전송 공연임박 홈화면 : 공연 임박 이미지 해시값, 공연 id 전송 좋아요한 홈화면 : 좋아요한 공연 이미지 해시값, 공연 id 전송 status_code : 사용자 정의 코드 message : 사용자 정의 메시지 body : 아웃풋 데이터 | 필수 | |
#028 | 전체 공연 목록 | GET | /performance/list/{cursorId} | PathVariable { cursor_id: (Int) } | Int | { status_code : (int) message : (String) body : { cursor_id : (Int), performance_list : (array), 공연dto } } | Json/list | 스프링 | Front : 처음 Request 시 1을 보내주고 다음 스크롤 때 Request 부터 BackEnd 에서 Response 해준 cursorId 를 보냄 | 필수 | |
#029 | 찜 목록 전체 보기 (유저가 좋아요 한 공연 전체 목록) | GET | /performance/likelist/{userId}/{cursorId} | PathVariable { user_id: (String) cursor_id: (Int) ] | String, Int | { status_code: (int) message: (String) body: { user_like_list: (array), 공연dto cursor_id: (Int) } } | Json/list | 스프링 | - 처음 로딩할 때 FE에서 0을 보내달라고 요청할 것 - 추가적으로 전달할 데이터가 없을 때 | 필수 | |
#022 | 공연 상세보기 (좋아요 여부 표시) | GET | /performance/{userId}/{performanceId} | PathVariable { user_id: (String) performance_id: (Int) } | String , Int | { status_code: (int) message: (String) body: { is_user_like : (boolean) performance_dto: (공연dto) can_reserve : (boolean) } } | Json | 스프링 | 필수 | ||
#022 | 좋아요 클릭 | PUT | /performance/like/{userId}/{performanceId} | PathVariable { user_id: (String) performance_id: (Int) } | String , Int | { status_code: (int) message: (String) body : (boolean) } | Json | 스프링 | 좋아요 여부 확인 후 진행 - 이미 클릭이 되었다면 → 취소 - 클릭된 적이 없다면 → 좋아요 | 낮음 | |
#023 | 예매하기 버튼 클릭 | GET | /performance/reserve/{performanceId} | PathVariable{ performance_id: (Int) } | Int | { status_code: (int) message: (String) body: { seats_state: (array), statusEnum perform : (공연dto) } } | Json | 스프링 | 상세보기에서 예매하기 버튼을 눌렀을 시 / 좌석 정보를 다시 갱신해오고 싶을 때
👉 좌석별 예매가능여부 확인 | 필수 | |
#023 | 좌석 상태 변경 | PUT | /perfomance/{performanceId}/{seatId}/{code} | PathVariable { performance_id: (Int) seat_id: (Int) code: (int) } | Int, Int, Int | { status_code: (int) message: (String) body : statusEnum } | Json | 스프링 | 프론트에서 임의의 코드를 보내면 좌석 상태를 변경 (취소된 티켓을 스케줄러에 등록한 뒤에 일정시간뒤에 좌석상태를 예매 가능으로 돌림) ex) code 값 2 : 예약완료 상태로 바꾸기 3 : 구매중 상태로 바꾸기 5 : 취소 상태로 바꾸기 7 : EMPTY 상태로 바꾸기 | 필수 | |
#011 | 티켓 취소 | PUT | /ticket/cancel/{performanceId}/{seatId} | performance_id: (Int) seat_id: (Int) | Int , Int | [{ status_code: (int) message: (String) }] | 솔리디티스프링 | Spring : 공연+좌석번호 보내서 상태값 변경(구매 후 취소) | 필수 | ||
#001 | 유저 로그인 체크 | GET | /user/check/{userId} | user_id : (String) | String | { status_code: 200, message: "기존유저", body: null } or { status_code: 400, message: "회원가입 필요", body: null } | 스프링 | 필수 | |||
#001 | 닉네임 등록 | GET | /user/make/{userId}/{nickname} | user_id : (String) nickname : (String) | String, String | { status_code: 200, message: "유저 입력 완료, body: null } | 스프링 | ||||
#023 | 공연좌석 선택 | GET | /performance/reserve/{performanceId}/{seatId} | performance_id: (Int) seat_id: (Int) | Int, Int | [{ status_code: (int) message: (String) body: [{ seat : (String) }] }] | Json | 스프링 | 1인 1매만 가능 하므로 PathVariable로 처리 (Dto말고) | 필수 | |
유저가 생성한 공연 목록 | GET | /supervisor/list/{userId} | user_id: (String) | String | { status_code: 200, message: ”유저가 생성한 공연”, body: user_created_list } | Json/list | |||||
공연 입장 처리 | / | ||||||||||
제목 없음 | |||||||||||
#041 | 공연 이미지 입력 | Web3 | 제목 없음 | IPFS | 필수 | ||||||
#041 | 공연 생성 | Web3 | createPerform | performId : uint16 title : string description : string maxSeat : uint16 location : string price : uint256 day : uint256 hour : uint256 minute : uint256 poster : string | send | 솔리디티 | 필수 | ||||
#025 | 티켓 민팅 | Web3 | createTicket | performId : uint16 userName : string seatNum : uint16 | payable | 솔리디티 | 필수 | ||||
#012 | 티켓 취소 | Web3 | cancleMyTicket | tokenId : uint256 performId : uint16 | payable | 솔리디티 | |||||
#24 | 환불 받는 금액 리턴 | Web3 | getNowRefundAmount | performId : uint16 | view | ||||||
#025 | 취소표 구매 | Web3 | buyCanceledTicket | performId: uint256 seatNum: uint16 userName : string | payable | 솔리디티 | |||||
#041 | 비하인드 입력 | Web3 | insertPerformBehind | performId : uint16 behindAddress : string | send | IPFS솔리디티 | |||||
#032 | 비하인드 목록 | Web3 | getBehindList | performId : uint16 | view | 솔리디티 | 필수 | ||||
#002 | 공연 전 티켓 목록 | Web3 | getBeforeTicketList | view | 솔리디티 | 필수 | |||||
#031 | 공연 후 티켓 목록 | Web3 | getAfterTicketList | view | 솔리디티 | 필수 | |||||
다이어리 입력 | Web3 | insertTicketDiary | tokenId : uint256 title : string subtitle : string content : string color : string | send | 솔리디티 | ||||||
#032 | 티켓 보관함 상세보기 리턴 (비하인드 리스트, Diary) | Web3 | getTicketDetails | tokenId : uint256 performId : uint16 | view | 솔리디티 | |||||
#022 | 해당공연티켓소유여부 | Web3 | isOwnerOfPerform | performId : uint16 | view | 솔리디티 | |||||
티켓 포스터 주소 | Web3 | getTokenURL | tokenId : uint256 | view | 솔리디티 | ||||||
티켓 정보 | Web3 | getTicketInfo | tokenId : uint256 | view | 솔리디티 | ||||||
티켓 주인 | Web3 | getMinter | tokenId : uint256 | view | 솔리디티 | ||||||
계정 별 토큰 아이디들 | Web3 | getTicketsByAccount | minter : address | view | 솔리디티 | ||||||
공연 정보 | Web3 | getPerformInfo | performId : uint16 | view | 솔리디티 | ||||||
공연 환불정보 | Web3 | getPerformRefundInfo | performId : uint16 | view | 솔리디티 | ||||||
공연 별 소유자들 | Web3 | getOwnersByPerform | performId : uint16 | view | 솔리디티 | ||||||
돈드립니다. | Web3 | sendEther | payable | 솔리디티 |