forked from codesquad-members-2021/baseball
-
Notifications
You must be signed in to change notification settings - Fork 1
API Document
Woody edited this page May 13, 2021
·
13 revisions
1. 게임 관련 URL
- 1-1 전체 대진표 목록 출력
- 1-2 대진표 목록 일부 출력
- 1-3 선택된 팀인지 여부 출력
- 2-1 회차의 초 혹은 말 경기가 시작될 때
- 2-2 선수 교체 될 때
- 2-3 pitch 한 번 진행 될 때
1. start request 속성 추가 - 20210513
2. result request 속성 추가 - 20210513
- ⭐️ 해당 URL 요청에 대한 응답 형식은 크게 response와 message로 구성되어 있음
-
message
는 큰 의미가 없기 때문에 요청 시 삭제 가능 -
response : {요청 데이터}
형식이 불필요 하다면 마찬가지로 삭제 가능(순수하게 요청한 데이터만 넘겨줄 수 있음)
-
{
"response" : {요청한 데이터},
"message" : "success"
}
- url :
/game
(http://54.180.73.20:8080/game)
{
"response":[
{
"gameId":1,
"home":{
"teamId":13,
"teamName":"Los Angeles Angels",
"selected":false
},
"away":{
"teamId":20,
"teamName":"Oakland Athletics",
"selected":false
}
},
{
"gameId":2,
"home":{
"teamId":16,
"teamName":"Milwaukee Brewers",
"selected":false
},
"away":{
"teamId":22,
"teamName":"Pittsburgh Pirates",
"selected":false
}
},
...
],
"message":"success"
}
- url :
/game/{index}
(http://54.180.73.20:8080/game/{index}) - 4개 단위로 게임 대진표 출력
- index 시작은 1부터
- ( example )
- /game/1 요청 시, game id 1~4까지
- /game/2 요청 시, game id 5~8까지
{
"response":[
{
"gameId":1,
"home":{
"teamId":13,
"teamName":"Los Angeles Angels",
"selected":false
},
"away":{
"teamId":20,
"teamName":"Oakland Athletics",
"selected":false
}
},
{
"gameId":2,
"home":{
"teamId":16,
"teamName":"Milwaukee Brewers",
"selected":false
},
"away":{
"teamId":22,
"teamName":"Pittsburgh Pirates",
"selected":false
}
},
{
"gameId":3,
"home":{
"teamId":28,
"teamName":"Texas Rangers",
"selected":false
},
"away":{
"teamId":8,
"teamName":"Cleveland Indians",
"selected":false
}
},
{
"gameId":4,
"home":{
"teamId":4,
"teamName":"Boston Red Sox",
"selected":false
},
"away":{
"teamId":6,
"teamName":"Chicago Cubs",
"selected":false
}
}
],
"message":"success"
}
-
url :/team/{teamId}/selected
(http://54.180.73.20:8080/team/{teamId}/selected) -
url :/game/selected
(http://54.180.73.20:8080/game/selected/) 👈👈 url 수정됨! 2021.05.11 16:38 -
url :
/game/selected?gameId={숫자}&teamId={숫자}
(http://54.180.73.20:8080/game/selected?gameId={숫자}&teamId={숫자}) 👈👈 url 수정됨! 2021.05.11 18:20 -
현재는 선택 되었는지 안되었는지에 대한 정보만 출력 (isSelected 만 출력)
- 쿼리 스트링으로 gameId와 teamId 정보 서버로 전달 👈👈 요청 정보 형식이 request body ➡️ query string으로 수정됨! 2021.05.11 18:20
- 아직 로그인 기능 구현이 안되어 있으므로 DB 상에는 모두 false 상태
- 테스트를 위해서
teamId = 1
인 팀의 경우 true로 리턴하도록 구현(하드코딩..;;) - 예시 url : http://54.180.73.20:8080/game/selected?gameId=10&teamId=1
{
"response": {
"isSelected": true
},
"message": "success"
}
- ⭐️ 아직 선택되지 않은 팀의 경우 바로 각 팀에 대한 정보를 넘겨주는 기능 구현 시 문서 업데이트 할 예정
- 예시 url : http://54.180.73.20:8080/game/selected?gameId=11&teamId=3
{
"response": {
"isSelected": false,
"homeTeamData": {
"teamId": 3,
"teamName": "Baltimore Orioles",
"pitcher": {
"playerName": "Baltimore Orioles player 1",
"playerNumber": 1,
"playerId": 17
},
"batters": [
{
"playerName": "Baltimore Orioles player 4",
"playerNumber": 4,
"playerId": 20
},
{
"playerName": "Baltimore Orioles player 3",
"playerNumber": 3,
"playerId": 19
},
{
"playerName": "Baltimore Orioles player 7",
"playerNumber": 7,
"playerId": 23
},
{
"playerName": "Baltimore Orioles player 6",
"playerNumber": 6,
"playerId": 22
},
{
"playerName": "Baltimore Orioles player 2",
"playerNumber": 2,
"playerId": 18
},
{
"playerName": "Baltimore Orioles player 5",
"playerNumber": 5,
"playerId": 21
},
{
"playerName": "Baltimore Orioles player 8",
"playerNumber": 8,
"playerId": 24
}
]
},
"awayTeamData": {
"teamId": 7,
"teamName": "Cincinnati Reds",
"pitcher": {
"playerName": "Cincinnati Reds player 1",
"playerNumber": 1,
"playerId": 49
},
"batters": [
{
"playerName": "Cincinnati Reds player 7",
"playerNumber": 7,
"playerId": 55
},
{
"playerName": "Cincinnati Reds player 3",
"playerNumber": 3,
"playerId": 51
},
{
"playerName": "Cincinnati Reds player 4",
"playerNumber": 4,
"playerId": 52
},
{
"playerName": "Cincinnati Reds player 2",
"playerNumber": 2,
"playerId": 50
},
{
"playerName": "Cincinnati Reds player 5",
"playerNumber": 5,
"playerId": 53
},
{
"playerName": "Cincinnati Reds player 8",
"playerNumber": 8,
"playerId": 56
},
{
"playerName": "Cincinnati Reds player 6",
"playerNumber": 6,
"playerId": 54
}
]
}
},
"message": "success"
}
- HTTP request type :
POST
- url :
/play/start
(http://54.180.73.20:8080/play/start)
{
"inningNumber" : 1,
"isTop" : true,
"gameId" : 1,
"pitcherId" : 1
}
{
"response": {
"inningId": 1
},
"message": "success"
}
- HTTP request type :
PUT
- url :
/play/result
(http://54.180.73.20:8080/play/result)
{
"gameId" : 1,
"inningId" : 1,
"batter" : 1,
"result" : "H",
"score" : 3,
"baseOne" : 1,
"baseTwo" : null,
"baseThree" : 3
}
- 현재는 통신 테스트를 위해서, 받아온 데이터를 그대로 리턴, 이후 수정될 예정
{
"response": {
"inningId": 1,
"result": "H",
"score": 3,
"baseOne": 1,
"baseTwo": null,
"baseThree": 3
},
"message": "success"
}
- HTTP request type :
POST
- url :
/play/pitch
(http://54.180.73.20:8080/play/pitch)
{
"batter" : 1,
"inningId" : 1,
"result" : "S"
}
{
"response": {
"batter": 1,
"inningId": 1,
"result": "S"
},
"message": "success"
}
- json formatter