Skip to content

API Document

Woody edited this page May 13, 2021 · 13 revisions

Base URL

목차

수정 사항

1. 게임 관련 URL

  • ⭐️ 해당 URL 요청에 대한 응답 형식은 크게 response와 message로 구성되어 있음
    • message는 큰 의미가 없기 때문에 요청 시 삭제 가능
    • response : {요청 데이터} 형식이 불필요 하다면 마찬가지로 삭제 가능(순수하게 요청한 데이터만 넘겨줄 수 있음)
{
  "response" : {요청한 데이터},
  "message" : "success"
}

1-1. 전체 대진표 목록 출력

{
   "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"
}

1-2. 대진표 목록 일부 출력

  • 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"
}

1-3. 선택된 팀인지 여부 출력

(1) Request

  • 쿼리 스트링으로 gameId와 teamId 정보 서버로 전달 👈👈 요청 정보 형식이 request body ➡️ query string으로 수정됨! 2021.05.11 18:20

(1) Response - 이미 선택된 팀일 경우

{
    "response": {
        "isSelected": true
    },
    "message": "success"
}

(2) Response 선택되지 않은 팀일 경우

{
    "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"
}

2. 게임 진행 상황 관련 URL

2-1. 회차(inning)의 초(top) 혹은 말(bottom) 경기가 시작될 때

(1) Request 👈👈 기존 request에서 gameIdpitcher 속성 추가 2021.05.13

{
   "inningNumber" : 1,
   "isTop" : true,
   "gameId" : 1,
   "pitcherId" : 1
}

(2) Response

{
    "response": {
        "inningId": 1
    },
    "message": "success"
}

2-2. 선수 교체 될 때

(1) Request 👈👈 기존 request에서 gameId 속성 추가 2021.05.13

{
   "gameId" : 1,
   "inningId" : 1,
   "batter" : 1,
   "result" : "H",
   "score" : 3,
   "baseOne" : 1,
   "baseTwo" : null,
   "baseThree" : 3
}

(2) Response 👈👈 🤔 응답을 어떤 식으로 보낼 지 미정, 협의 필요

  • 현재는 통신 테스트를 위해서, 받아온 데이터를 그대로 리턴, 이후 수정될 예정
{
    "response": {
        "inningId": 1,
        "result": "H",
        "score": 3,
        "baseOne": 1,
        "baseTwo": null,
        "baseThree": 3
    },
    "message": "success"
}

2-3. pitch 한 번 진행될 때

(1) Request

{
   "batter" : 1,
   "inningId" : 1,
   "result" : "S"
}

(2) Response

{
    "response": {
        "batter": 1,
        "inningId": 1,
        "result": "S"
    },
    "message": "success"
}

🙏 Thanks To