Skip to content

[BE] API

Bongf edited this page May 14, 2021 · 2 revisions

💁‍♂️ [BE] 배포 주소 http://3.34.140.110:8080

👩‍💻API 사용설명서

번호 URL 기능 설명
1 GET /games 팀 목록을 가져온다
2 POST /games/{gameId}/teams/{teamId} 참여하고 싶은 팀을 선택한다
3 PUT /games/{gameId}/teams/{teamId} 선택한 팀을 해제한다
4 GET /games/{gameId}/start 게임을 시작한다
5 POST /games/{gameId}/pitch 수비팀에서 공을 던진다(pitch)
6 GET /games/{gameId}/pitchResult pitch후의 게임 진행 상황을 조회한다
7 GET /games/{gameId}/score 현재 게임의 점수판을 조회한다
8 GET /games/{gameId}/pa 현재 게임의 선수 명단을 조회한다
9 POST /games/{gameId}/halfInning 한 회(초/말)을 끝낸다
10 POST /games/{gameId}/end 게임을 끝낸다
11 POST /games/{gameId}/batterRecord 중계 영역에 들어갈 데이터를 입력한다
12 GET /games/{gameID}/batterBoard 중계 영역의 데이터를 가져온다

1. GET /games

  • response
[
    {
        "game_id": 1,
        "game_status": "READY",
        "home": {
            "id": 1,
            "name": "hanwha",
            "selected": false
        },
        "away": {
            "id": 2,
            "name": "doosan",
            "selected": false
        }
    },
    {
        "game_id": 2,
        "game_status": "READY",
        "home": {
            "id": 3,
            "name": "kia",
            "selected": false
        },
        "away": {
            "id": 4,
            "name": "samsung",
            "selected": false
        }
    },
    {
        "game_id": 3,
        "game_status": "READY",
        "home": {
            "id": 5,
            "name": "lotte",
            "selected": false
        },
        "away": {
            "id": 6,
            "name": "lg",
            "selected": false
        }
    },
    {
        "game_id": 4,
        "game_status": "READY",
        "home": {
            "id": 7,
            "name": "hanzin",
            "selected": false
        },
        "away": {
            "id": 8,
            "name": "dooson",
            "selected": false
        }
    },
    {
        "game_id": 5,
        "game_status": "READY",
        "home": {
            "id": 9,
            "name": "kila",
            "selected": false
        },
        "away": {
            "id": 10,
            "name": "samssssung",
            "selected": false
        }
    },
    {
        "game_id": 6,
        "game_status": "READY",
        "home": {
            "id": 11,
            "name": "lottek",
            "selected": false
        },
        "away": {
            "id": 12,
            "name": "lgggg",
            "selected": false
        }
    },
    {
        "game_id": 7,
        "game_status": "READY",
        "home": {
            "id": 13,
            "name": "hamha",
            "selected": false
        },
        "away": {
            "id": 14,
            "name": "san",
            "selected": false
        }
    },
    {
        "game_id": 8,
        "game_status": "READY",
        "home": {
            "id": 15,
            "name": "a",
            "selected": false
        },
        "away": {
            "id": 16,
            "name": "amsung",
            "selected": false
        }
    },
    {
        "game_id": 9,
        "game_status": "READY",
        "home": {
            "id": 17,
            "name": "lot",
            "selected": false
        },
        "away": {
            "id": 18,
            "name": "lggg",
            "selected": false
        }
    },
    {
        "game_id": 10,
        "game_status": "READY",
        "home": {
            "id": 19,
            "name": "lgaa",
            "selected": false
        },
        "away": {
            "id": 20,
            "name": "lgoo",
            "selected": false
        }
    }
]

2. POST /games/{gameId}/teams/{teamId}

  • response
{
    "status": "SELECT_OK",
    "message": "팀이 선택되었습니다.",
    "body": null
}

3. PUT /games/{gameId}/teams/{teamId}

4. GET /games/{gameId}/start

  • response
    • 한 명의 유저만 팀을 선택한 경우
{
    "status": "START_FAIL",
    "message": "상대팀 유저를 기다리는 중입니다",
    "body": null
}
  • 두 명의 유저가 모두 팀을 선택한 경우
{
    "status": "START_OK",
    "message": "게임이 시작되었습니다",
    "body": {
        "game_info": {
            "id": 1,
            "current_inning": 1,
            "frame": "TOP"
        },
        "home": {
            "id": 1,
            "name": "hanwha",
            "mode": "FIELDING",
            "score": 0,
            "pitcher": {
                "id": 1,
                "name": "김오잉",
                "uniform_number": 1
            },
            "batters": [
                {
                    "id": 1,
                    "name": "김오잉",
                    "uniform_number": 1
                },
                {
                    "id": 2,
                    "name": "남치수",
                    "uniform_number": 2
                },
                {
                    "id": 3,
                    "name": "임준섭",
                    "uniform_number": 3
                },
                {
                    "id": 4,
                    "name": "김종식",
                    "uniform_number": 4
                },
                {
                    "id": 5,
                    "name": "남색송",
                    "uniform_number": 5
                },
                {
                    "id": 6,
                    "name": "임춘배",
                    "uniform_number": 6
                },
                {
                    "id": 7,
                    "name": "김총총",
                    "uniform_number": 7
                },
                {
                    "id": 8,
                    "name": "남순순",
                    "uniform_number": 8
                },
                {
                    "id": 9,
                    "name": "임꺽정",
                    "uniform_number": 9
                }
            ]
        },
        "away": {
            "id": 2,
            "name": "doosan",
            "mode": "BATTING",
            "score": 0,
            "pitcher": {
                "id": 11,
                "name": "하이용",
                "uniform_number": 11
            },
            "batters": [
                {
                    "id": 10,
                    "name": "임홍시",
                    "uniform_number": 10
                },
                {
                    "id": 11,
                    "name": "하이용",
                    "uniform_number": 11
                },
                {
                    "id": 12,
                    "name": "바이용",
                    "uniform_number": 12
                },
                {
                    "id": 13,
                    "name": "봉쥬르",
                    "uniform_number": 13
                },
                {
                    "id": 14,
                    "name": "호랑이",
                    "uniform_number": 14
                },
                {
                    "id": 15,
                    "name": "추신수",
                    "uniform_number": 15
                },
                {
                    "id": 16,
                    "name": "박지성",
                    "uniform_number": 16
                },
                {
                    "id": 17,
                    "name": "낙곱새",
                    "uniform_number": 17
                },
                {
                    "id": 18,
                    "name": "이건희",
                    "uniform_number": 18
                }
            ]
        }
    }
}

5. POST /games/{gameId}/pitch

  • request
{
    "home_id": 1,
    "away_id": 2,
    "batting_team_id": 1,
    "pitch_result": "strike",
    "batter": {
        "player_id": 1,
        "player_name": "김종수",
        "player_uniform_number": 1,
        "is_out": true
    },
    "nth_batter" : 50,
    "ball_count": {
        "strike": 1,
        "ball": 1,
        "out": 2
    },
    "runners": [
        {
          "player_id": 123,
          "mode": null
        },
        {
          "player_id": 123,
          "mode": null
        }
    ],
    "score": {
        "home_score": 2,
        "away_score": 1
    }
  }

6. GET /games/{gameId}/pitchResult

  • response
{
    "home_id": 1,
    "away_id": 2,
    "batting_team_id": 1,
    "pitch_result": "strike",
    "runners": [
        {
            "player_id": 123,
            "mode": null
        },
        {
            "player_id": 123,
            "mode": null
        },
        {
            "player_id": null,
            "mode": null
        },
        {
            "player_id": null,
            "mode": null
        }
    ],
    "batter": {
        "player_id": 1,
        "player_name": "김종수",
        "player_uniform_number": 1,
        "is_out": false
    },
    "nth_batter": 50,
    "ball_count": {
        "strike": 1,
        "ball": 1,
        "out": 2
    },
    "score": {
        "home_score": 2,
        "away_score": 1
    }
}

7. GET /games/{gameId}/score

  • response
{
    "home_name": "hanwha",
    "away_name": "doosan",
    "home_score_list": [
        1,
        1
    ],
    "away_score_list": [
        1,
        1
    ],
    "home_total": 2,
    "away_total": 2
}

8. GET /games/{gameId}/pa

  • response
{
    "away": {
        "team_name": "doosan",
        "players": [
            {
                "player_id": 10,
                "player_name": "임홍시",
                "at_bat": 0,
                "hit": 0,
                "out": 0,
                "average": 0
            },
            {
                "player_id": 11,
                "player_name": "하이용",
                "at_bat": 0,
                "hit": 0,
                "out": 0,
                "average": 0
            },
            {
                "player_id": 12,
                "player_name": "바이용",
                "at_bat": 0,
                "hit": 0,
                "out": 0,
                "average": 0
            },
            {
                "player_id": 13,
                "player_name": "봉쥬르",
                "at_bat": 0,
                "hit": 0,
                "out": 0,
                "average": 0
            },
            {
                "player_id": 14,
                "player_name": "호랑이",
                "at_bat": 0,
                "hit": 0,
                "out": 0,
                "average": 0
            },
            {
                "player_id": 15,
                "player_name": "추신수",
                "at_bat": 0,
                "hit": 0,
                "out": 0,
                "average": 0
            },
            {
                "player_id": 16,
                "player_name": "박지성",
                "at_bat": 0,
                "hit": 0,
                "out": 0,
                "average": 0
            },
            {
                "player_id": 17,
                "player_name": "낙곱새",
                "at_bat": 0,
                "hit": 0,
                "out": 0,
                "average": 0
            },
            {
                "player_id": 18,
                "player_name": "이건희",
                "at_bat": 0,
                "hit": 0,
                "out": 0,
                "average": 0
            }
        ]
    },
    "home": {
        "team_name": "hanwha",
        "players": [
            {
                "player_id": 1,
                "player_name": "김오잉",
                "at_bat": 0,
                "hit": 0,
                "out": 0,
                "average": 0
            },
            {
                "player_id": 2,
                "player_name": "남치수",
                "at_bat": 0,
                "hit": 0,
                "out": 0,
                "average": 0
            },
            {
                "player_id": 3,
                "player_name": "임준섭",
                "at_bat": 0,
                "hit": 0,
                "out": 0,
                "average": 0
            },
            {
                "player_id": 4,
                "player_name": "김종식",
                "at_bat": 0,
                "hit": 0,
                "out": 0,
                "average": 0
            },
            {
                "player_id": 5,
                "player_name": "남색송",
                "at_bat": 0,
                "hit": 0,
                "out": 0,
                "average": 0
            },
            {
                "player_id": 6,
                "player_name": "임춘배",
                "at_bat": 0,
                "hit": 0,
                "out": 0,
                "average": 0
            },
            {
                "player_id": 7,
                "player_name": "김총총",
                "at_bat": 0,
                "hit": 0,
                "out": 0,
                "average": 0
            },
            {
                "player_id": 8,
                "player_name": "남순순",
                "at_bat": 0,
                "hit": 0,
                "out": 0,
                "average": 0
            },
            {
                "player_id": 9,
                "player_name": "임꺽정",
                "at_bat": 0,
                "hit": 0,
                "out": 0,
                "average": 0
            }
        ]
    }
}

9. POST /games/{gameId}/halfInning

  • request
{
    "home_id": 1,
    "away_id": 2,
    "batting_team_id": 1,
    "pitch_result": "strike",
    "batter": {
        "player_id": 1,
        "player_name": "김종수",
        "player_uniform_number": 1,
        "is_out": true
    },
    "nth_batter" : 50,
    "ball_count": {
        "strike": 0,
        "ball": 0,
        "out": 0
    },
    "runners": [
     ],
    "score": {
        "home_score": 2,
        "away_score": 100
    }
  }
  • response
{
    "status": "NEW_HALFINNING_OK",
    "message": "공격과 수비가 변경됩니다",
    "body": null
}

10. POST /games/{gameId}/end

11. POST /games/{gameId}/batterRecord

  • request
[{  "player_id": 1, 
    "action": "BALL", 
    "nth_batter" : 1,
    "batter_name" : "로또",
    "strike": 0, 
    "ball": 1 
  },
  {  "player_id": 1, 
    "action": "BALL", 
    "nth_batter" : 1,
    "batter_name" : "로또",
    "strike": 0, 
    "ball": 1 
  },
  { "player_id": 2, 
    "action": "BALL", 
    "nth_batter" : 1,
    "batter_name" : "일등",
    "strike": 0, 
    "ball": 1 
  }
]

12. GET /games/{gameID}/batterBoard

  • response
[
    {
        "player_id": 1,
        "action": "BALL",
        "batter_name": "로또",
        "strike": 0,
        "ball": 1,
        "nth_batter": 0
    },
    {
        "player_id": 1,
        "action": "BALL",
        "batter_name": "로또",
        "strike": 0,
        "ball": 1,
        "nth_batter": 0
    },
    {
        "player_id": 2,
        "action": "BALL",
        "batter_name": "일등",
        "strike": 0,
        "ball": 1,
        "nth_batter": 0
    }
]