[BE] Baseball API 설계 - choigiseong/baseball GitHub Wiki

postman

https://documenter.getpostman.com/view/15264844/TzRNEpcQ

API 설계

1. 메인 페이지 팀 조회 API

구분 요청 메서드 URL
메인 페이지 GET /api/intro

Response 포맷

{
    "teams": [
        {
            "name": "SSG 랜더스"
        },
        {
            "name": "기아 타이거즈"
        },
        {
            "name": "두산 베어스"
        },
        {
            "name": "롯데 자이언츠"
        },
        {
            "name": "키움 히어로즈"
        },
        {
            "name": "한화 이글스"
        }
    ]
}

2 팀 선택 API

구분 요청 메서드 URL
home 팀 선택 POST /api/games/type-home
away 팀 선택 POST /api/games/type-away

Request 포맷

{
    "user" : "기아 타이거즈",
    "opponent" : "롯데 자이언츠"
}

Response 포맷

{
    "game_id": 2,
    "user": {
        "team_name": "기아 타이거즈",
        "players": [
            {
                "id": 19,
                "name": "나지완",
                "type": "투수",
                "at_bat": 2,
                "hits": 1,
                "out": 1,
                "average": 0.5
            },
            {
                "id": 20,
                "name": "최형우",
                "type": "타자",
                "at_bat": 2,
                "hits": 0,
                "out": 2,
                "average": 0.0
            },
             ...
        ]
    },
    "opponent": {
        "team_name": "롯데 자이언츠",
        "players": [
            {
                "id": 46,
                "name": "정훈",
                "type": "투수",
                "at_bat": 2,
                "hits": 2,
                "out": 2,
                "average": 1.0
            },
            {
                "id": 47,
                "name": "손아섭",
                "type": "타자",
                "at_bat": 2,
                "hits": 0,
                "out": 2,
                "average": 0.0
            },
            ...
        ]
    }
}

3. 선수 아웃,안타 시 API

구분 요청 메서드 URL
선수 아웃,안타 이벤트 PUT /api/players/:player_id/record

Request 포맷

{
    "record" : "HITS" // HITS,OUT
}

Response 포맷

  • 성공시 200 상태코드로 응답이 온다.
  • 실패시 200 외의 상태코드로 응답이 온다. (ex 400, 403, ...)

4. 팀 득점 시 API

구분 요청 메서드 URL
팀 득점 시 POST /api/games/:game_id/points

Request 포맷

{
    "team_name" : "롯데 자이언츠",
    "round" : 3,
    "point" : 5
}

Response 포맷

  • 성공시 200 상태코드로 응답이 온다.
  • 실패시 200 외의 상태코드로 응답이 온다. (ex 400, 403, ...)

5. 상세 점수 팝업 API

구분 요청 메서드 URL
상세 점수 팝업 GET /api/games/:game_id/points

Response 포맷

{
    "user": {
        "team_name": "기아 타이거즈",
        "point": [
            30,
            503
        ]
    },
    "opponent": {
        "team_name": "롯데 자이언츠",
        "point": [
            3,
            2,
            5
        ]
    }
}

6. 선수 명단 팝업 API

구분 요청 메서드 URL
선수 명단 팝업 GET /api/games/:game_id/players

Response 포맷

{
    "game_id": 2,
    "user": {
        "team_name": "기아 타이거즈",
        "players": [
            {
                "id": 19,
                "name": "나지완",
                "type": "투수",
                "at_bat": 2,
                "hits": 1,
                "out": 1,
                "average": 0.5
            },
            {
                "id": 20,
                "name": "최형우",
                "type": "타자",
                "at_bat": 2,
                "hits": 0,
                "out": 2,
                "average": 0.0
            },
             ...
        ]
    },
    "opponent": {
        "team_name": "롯데 자이언츠",
        "players": [
            {
                "id": 46,
                "name": "정훈",
                "type": "투수",
                "at_bat": 2,
                "hits": 2,
                "out": 2,
                "average": 1.0
            },
            {
                "id": 47,
                "name": "손아섭",
                "type": "타자",
                "at_bat": 2,
                "hits": 0,
                "out": 2,
                "average": 0.0
            },
            ...
        ]
    }
}