구현에 앞서 도전기능을 알아 보겠습니다.
1. 아이템 구입 API → (JWT 인증 필요)
- 캐릭터가 가진 money로 아이템을 구매하여 money감소
- 캐릭터의 ID를 URL의 parameter로 전달하고, 구입하고 싶은 아이템의 코드와 수량은 body로 전달
- 구입 성공 시 인벤토리에 아이템 생성, response는 캐릭터의 money를 반환해줍니다.
2. 아이템 판매 API → (JWT 인증 필요)
- 인벤토리에 아이템들을 판매하는 API
- 아이템을 팔면 아이템 원가의 60% 가격으로 정산 money에 적용합니다.
- 캐릭터의 ID를 URL의 parameter로 전달하고, 판매하고 싶은 아이템의 코드와 수량은 body로 전달합니다.
- reponse는 변경된 게임 머니 잔액을 반환합니다.
3. 캐릭터가 보유한 인벤토리 내 아이템 목록 조회 API → (JWT 인증 필요)
- 인벤토리 목록을 조회할 내 캐릭터의 ID를 URI의 parameter로 전달 받습니다.
- 한 아이템 목록마다 itemCode, itemName, count(아이템 갯수)를 반환합니다.
4. 캐릭터가 장착한 아이템 목록 조회 API
- 장착된 아이템 목록을 조회할 아무 캐릭터의 ID를 URI의 parameter로 전달 받습니다.
- 장착된 아이템의 목록마다 itemCode, itemName을 반환합니다.
5. 아이템 장착 API → (JWT 인증 필요)
- 아이템을 장착할 내 캐릭터의 ID를 URI의 parameter로 전달 받습니다.
- 장착할 아이템 코드를 request에서 전달 받습니다.
- 현재 캐릭터 인벤토리에 존재하지 않는 아이템이 아니라면 없는 아이템이라고 장착이 거부되어야 합니다!
- 이 때, 이미 장착한 아이템(아이템 코드 기반으로 구분할 수 있겠죠)을 또 장착하려고 하면 이미 장착된 아이템이라고 장착이 거부되어야 합니다!
- 아이템 코드가 같은 아이템이 다수 인벤토리에 있어도 장착은 1개만 합니다.
- 아이템 장착시 아이템의 스탯만큼 캐릭터의 스탯이 올라갑니다.
6. 아이템 탈착 API → (JWT 인증 필요)
- 아이템을 장착할 내 캐릭터의 ID를 URI의 parameter로 전달 받습니다.
- 탈착할 아이템 코드를 request에서 전달 받기
- 매우 중요: 아이템 탈착을 하게 되면 아이템의 스탯만큼 캐릭터의 스탯이 떨어집니다.
- 또한, 캐릭터-장착 아이템 테이블에서 해당 아이템 정보를 삭제해야 됩니다.
- 캐릭터-인벤토리 테이블에서 해당 아이템 정보는 변경 혹은 추가가 해야 합니다. 탈착했으니 갯수가 늘어난다던가, 탈착했으니 인벤토리에 아이템이 없어 갯수가 0개에서 1개로 될때 인벤토리 테이블에서 아이템을 새롭게 생성해 준다거나 해야 될 것 같습니다.
7. 게임 머니를 버는 API → (JWT 인증 필요)
- 돈을 벌 내 캐릭터의 ID를 URI의 parameter로 전달 받기만 하면 해당 캐릭터의 잔액 게임 머니를 100원씩 늘려주고 response로 변경된 잔액 게임 머니를 반환해줍니다.
오우 그래도 강의 내용을 잘 찾아보면 다 구현할 수 있을 것 같습니다.
지금도 화이팅!