프로젝트/API

PUBG Open API 공식 오픈!

건유1019 2020. 12. 28. 12:48

위 API는 기존 PUBG API 에 대한 단점을 완화시켜주기 위해 제작된 프로젝트입니다.

본 API는 DB에 유저를 등록하는 방식으로 정보를 불러오며 3일에 1번 자동 업데이트 하며, 개발자가 직접 업데이트를 하실 수도 있습니다. (깃허브)

 

어떤점이 보완되었나요?
우선 PUBG API의 경우 분당 10회의 제한이 있습니다. 이 API의 경우 분당 10회의 제한이 없으며, 제한 없이 무제한적으로 사용할 수 있습니다!


유의사항

  • 모든 API는 기본적으로 https://yjs.kr/api/PUBG/ 로 시작합니다.
  • 응답형식: 오류를 포함한, 모든 응답은 json(application/json) 형태로 반환됩니다.
  • 매개변수의 경우 params 형태로 GET을 통해 보내주시기 바랍니다.

플랫폼 정보

플랫폼 정보의 경우 0~4라는 숫자값을 통해 보낼 수 있습니다.

  • 0: 스팀
  • 1: 카카오
  • 2: XBOX (콘솔)
  • 3:플레이스테이션 (콘솔)
  • 4: 스테디아(클라우드)

본 문서가 심각하게 깁니다. 차라리 깃허브 가셔서 읽으시는 것을 추천드립니다.

<한국어 문서> https://github.com/team-alpha-kr/PUBG-API/blob/main/document-KR.md

<영어 문서> https://github.com/team-alpha-kr/PUBG-API/blob/main/document-EN.md


/player

유저의 DB 업데이트 시간과, 플랫폼 정보, 유저 정보를 반환합니다. 최초 1회 검색시에는 꼭 플랫폼 정보를 작성해야 합니다.

https://yhs.kr/api/PUBG/player

매개변수

/ platform nickname
요청하는 정보 플랫폼 정보 유저명
요청 형태 number(숫자) string(문자)

반환 값

{
    "id": "user id",
    "nickname": "nickname",
    "platform": 0,
    "lastupdate": {
        "weapon": {
            "years": 1,
            "months": 1,
            "days": 1,
            "hours": 0,
            "minutes": 0
        },
        "matches": {
            "years": 1,
            "months": 1,
            "days": 1,
            "hours": 0,
            "minutes": 0
        },
        "normal": {
            "years": 1,
            "months": 1,
            "days": 1,
            "hours": 0,
            "minutes": 0
        },
        "ranked": {
            "years": 1,
            "months": 1,
            "days": 1,
            "hours": 0,
            "minutes": 0
        }
    }
}
기본
  • id: 유저의 ID [문자]
  • nickname: 유저의 닉네임 [문자]
  • platform: 해당 유저의 플랫폼 정보 [숫자]
  • last_update: 유저 DB 업데이트 정보 [json]
유저 업데이트 정보
  • weapon: 미사용
  • normal: 일반전 DB 업데이트 정보 [json]
  • ranked: 경쟁전 DB 업데이트 정보 [json]
  • matches: 미사용

/normal

검색하는 유저에 일반 전적을 불러옵니다.

https://yhs.kr/api/PUBG/normal

매개변수

/ id season
요청하는 정보 유저의 ID 시즌(옵션)
요청 형태 string(문자) string(문자)

반환 값

{
    "id": "유저의 ID",
    "gameMode": {
        "solo": {
            "assists": 0,
            "boosts": 0,
            "dBNOs": 0,
            "dailyKills": 0,
            "dailyWins": 0,
            "damageDealt": 0,
            "days": 0,
            "headshotKills": 0,
            "heals": 0,
            "KDA_point": 0.0,
            "KD_point": 0.0,
            "kills": 0,
            "longestKill": 0,
            "longestTimeSurvived": 0,
            "longestTimeSurvivedAnswer": "0초",
            "losses": 0,
            "maxKillStreaks": 0,
            "mostSurvivalTime": 0,
            "revives": 0,
            "rideDistance": 0,
            "roadKills": 0,
            "roundMostKills": 0,
            "roundsPlayed": 0,
            "suicides": 0,
            "swimDistance": 0,
            "teamKills": 0,
            "timeSurvived": 0,
            "timeSurvivedAnswer": "0초",
            "top10s": 0,
            "vehicleDestroys": 0,
            "walkDistance": 0,
            "weaponsAcquired": 0,
            "weeklyKills": 0,
            "weeklyWins": 0,
            "wins": 0
        },
        "solo-fpp": {
            "assists": 0,
            "boosts": 0,
            "dBNOs": 0,
            "dailyKills": 0,
            "dailyWins": 0,
            "damageDealt": 0,
            "days": 0,
            "headshotKills": 0,
            "heals": 0,
            "KDA_point": 0.0,
            "KD_point": 0.0,
            "kills": 0,
            "longestKill": 0,
            "longestTimeSurvived": 0,
            "longestTimeSurvivedAnswer": "0초",
            "losses": 0,
            "maxKillStreaks": 0,
            "mostSurvivalTime": 0,
            "revives": 0,
            "rideDistance": 0,
            "roadKills": 0,
            "roundMostKills": 0,
            "roundsPlayed": 0,
            "suicides": 0,
            "swimDistance": 0,
            "teamKills": 0,
            "timeSurvived": 0,
            "timeSurvivedAnswer": "0초",
            "top10s": 0,
            "vehicleDestroys": 0,
            "walkDistance": 0,
            "weaponsAcquired": 0,
            "weeklyKills": 0,
            "weeklyWins": 0,
            "wins": 0
        },
        "duo": {
            "assists": 0,
            "boosts": 0,
            "dBNOs": 0,
            "dailyKills": 0,
            "dailyWins": 0,
            "damageDealt": 0,
            "days": 0,
            "headshotKills": 0,
            "heals": 0,
            "KDA_point": 0.0,
            "KD_point": 0.0,
            "kills": 0,
            "longestKill": 0,
            "longestTimeSurvived": 0,
            "longestTimeSurvivedAnswer": "0초",
            "losses": 0,
            "maxKillStreaks": 0,
            "mostSurvivalTime": 0,
            "revives": 0,
            "rideDistance": 0,
            "roadKills": 0,
            "roundMostKills": 0,
            "roundsPlayed": 0,
            "suicides": 0,
            "swimDistance": 0,
            "teamKills": 0,
            "timeSurvived": 0,
            "timeSurvivedAnswer": "0초",
            "top10s": 0,
            "vehicleDestroys": 0,
            "walkDistance": 0,
            "weaponsAcquired": 0,
            "weeklyKills": 0,
            "weeklyWins": 0,
            "wins": 0
        },
        "duo-fpp": {
            "assists": 0,
            "boosts": 0,
            "dBNOs": 0,
            "dailyKills": 0,
            "dailyWins": 0,
            "damageDealt": 0,
            "days": 0,
            "headshotKills": 0,
            "heals": 0,
            "KDA_point": 0.0,
            "KD_point": 0.0,
            "kills": 0,
            "longestKill": 0,
            "longestTimeSurvived": 0,
            "longestTimeSurvivedAnswer": "0초",
            "losses": 0,
            "maxKillStreaks": 0,
            "mostSurvivalTime": 0,
            "revives": 0,
            "rideDistance": 0,
            "roadKills": 0,
            "roundMostKills": 0,
            "roundsPlayed": 0,
            "suicides": 0,
            "swimDistance": 0,
            "teamKills": 0,
            "timeSurvived": 0,
            "timeSurvivedAnswer": "0초",
            "top10s": 0,
            "vehicleDestroys": 0,
            "walkDistance": 0,
            "weaponsAcquired": 0,
            "weeklyKills": 0,
            "weeklyWins": 0,
            "wins": 0
        },
        "squad": {
            "assists": 0,
            "boosts": 0,
            "dBNOs": 0,
            "dailyKills": 0,
            "dailyWins": 0,
            "damageDealt": 0,
            "days": 0,
            "headshotKills": 0,
            "heals": 0,
            "KDA_point": 0.0,
            "KD_point": 0.0,
            "kills": 0,
            "longestKill": 0,
            "longestTimeSurvived": 0,
            "longestTimeSurvivedAnswer": "0초",
            "losses": 0,
            "maxKillStreaks": 0,
            "mostSurvivalTime": 0,
            "revives": 0,
            "rideDistance": 0,
            "roadKills": 0,
            "roundMostKills": 0,
            "roundsPlayed": 0,
            "suicides": 0,
            "swimDistance": 0,
            "teamKills": 0,
            "timeSurvived": 0,
            "timeSurvivedAnswer": "0초",
            "top10s": 0,
            "vehicleDestroys": 0,
            "walkDistance": 0,
            "weaponsAcquired": 0,
            "weeklyKills": 0,
            "weeklyWins": 0,
            "wins": 0
        },
        "squad-fpp": {
            "assists": 0,
            "boosts": 0,
            "dBNOs": 0,
            "dailyKills": 0,
            "dailyWins": 0,
            "damageDealt": 0,
            "days": 0,
            "headshotKills": 0,
            "heals": 0,
            "KDA_point": 0.0,
            "KD_point": 0.0,
            "kills": 0,
            "longestKill": 0,
            "longestTimeSurvived": 0,
            "longestTimeSurvivedAnswer": "0초",
            "losses": 0,
            "maxKillStreaks": 0,
            "mostSurvivalTime": 0,
            "revives": 0,
            "rideDistance": 0,
            "roadKills": 0,
            "roundMostKills": 0,
            "roundsPlayed": 0,
            "suicides": 0,
            "swimDistance": 0,
            "teamKills": 0,
            "timeSurvived": 0,
            "timeSurvivedAnswer": "0초",
            "top10s": 0,
            "vehicleDestroys": 0,
            "walkDistance": 0,
            "weaponsAcquired": 0,
            "weeklyKills": 0,
            "weeklyWins": 0,
            "wins": 0
        }
    }
}
기본
  • id: 유저의 ID(문자)
  • gamemode: 게임모드 별 전적을 반환합니다. [solo, solo-fpp, duo, duo-fpp, squad, squad-fpp] (json)
게임모드 별 정보(gamemode)
  • assists: 어시스트 [숫자]
  • boosts: 도핑 아이템 사용횟수 [숫자]
  • dBNOs: dBNO(Down But Not Out, 기절하였지만 아웃으로 처리되지 않은 것)횟수 [숫자]
  • dailyKills: 일당 킬 횟수 [숫자]
  • dailyWins: 일당 우승 횟수 [숫자]
  • damageDealt: 평균 피해량 [숫자]
  • days: 플레이시간(일)만 반환합니다. [숫자]
  • headshotKills: 헤드샷 횟수 [숫자]
  • heals: 힐 아이템(구급상자, 붕대, 의료용 키트)사용 횟수 [숫자]
  • KDA_point: 킬/데스/어시스트 점수 [소수]
  • KD_point": 킬/데스 점수 [소수]
  • kills: 킬 횟수 [숫자]
  • longestKill: 최대 저격 거리 [소수]
  • longestTimeSurvived: 생존시간(초) [소수]
  • longestTimeSurvivedAnswer: 생존시간 [문자]
  • losses: 패배(사망) 횟수 [숫자]
  • maxKillStreaks: 여포 횟수 [숫자]
  • mostSurvivalTime: 평균 생존 시간(초) [소수]
  • revives: 소생 횟수 [숫자]
  • rideDistance: 자동차, 오토바이등을 이용한 이동 거리 [소수]
  • roadKills: 로드킬(고라니) 횟수 [숫자]
  • roundMostKills: 라운드별 평균 킬 [숫자]
  • roundsPlayed: 플레이 횟수 [숫자]
  • suicides: 자살 횟수 [숫자]
  • swimDistance: 수영을 이용한 이동 거리 [소수]
  • teamKills: 팀킬 횟수 [숫자]
  • timeSurvived: 생존 시간(초) [소수]
  • timeSurvivedAnswer: 생존 시간 [문자]
  • top10s: top10 횟수 [숫자]
  • vehicleDestroys: 차량 파괴 횟수 [숫자]
  • walkDistance: 걸어서 이동한 거리 [소수]
  • weaponsAcquired: 무기 획득한 횟수 [숫자]
  • weeklyKills: 주당 킬 횟수 [숫자]
  • weeklyWins: 주당 우승 횟수 [숫자]
  • wins: 우승 [숫자]

/ranked

검색하는 유저에 경쟁 전적을 불러옵니다.

https://yhs.kr/api/PUBG/ranked

매개변수

/ id season
요청하는 정보 유저의 ID 시즌(옵션)
요청 형태 string(문자) string(문자)

반환 값

{
    "id": "유저의 ID",
    "gameMode": {
        "solo": {
            "assists": 0,
            "avgRank": 0,
            "currentRank": {
                "tier": "Unranked",
                "subTier": "1"
            },
            "currentRankAnswer": "Unranked",
            "currentRankPoint": 0,
            "bestRank": {
                "tier": "Unranked",
                "subTier": "1"
            },
            "bestRankAnswer": "Unranked",
            "bestRankPoint": 0,
            "damageDealt": 0,
            "deaths": 0,
            "dBNOs": 0,
            "KDA_point": 0,
            "KD_point": 0,
            "kills": 0,
            "roundsPlayed": 0,
            "top10s": 0,
            "top10_point": 0,
            "wins": 0,
            "win_point": 0
        },
        "solo-fpp": {
            "assists": 0,
            "avgRank": 0,
            "currentRank": {
                "tier": "Unranked",
                "subTier": "1"
            },
            "currentRankAnswer": "Unranked",
            "currentRankPoint": 0,
            "bestRank": {
                "tier": "Unranked",
                "subTier": "1"
            },
            "bestRankAnswer": "Unranked",
            "bestRankPoint": 0,
            "damageDealt": 0,
            "deaths": 0,
            "dBNOs": 0,
            "KDA_point": 0,
            "KD_point": 0,
            "kills": 0,
            "roundsPlayed": 0,
            "top10s": 0,
            "top10_point": 0,
            "wins": 0,
            "win_point": 0
        },
        "squad": {
            "assists": 0,
            "avgRank": 0,
            "currentRank": {
                "tier": "Unranked",
                "subTier": "1"
            },
            "currentRankAnswer": "Unranked",
            "currentRankPoint": 0,
            "bestRank": {
                "tier": "Unranked",
                "subTier": "1"
            },
            "bestRankAnswer": "Unranked",
            "bestRankPoint": 0,
            "damageDealt": 0,
            "deaths": 0,
            "dBNOs": 0,
            "KDA_point": 0,
            "KD_point": 0,
            "kills": 0,
            "roundsPlayed": 0,
            "top10s": 0,
            "top10_point": 0,
            "wins": 0,
            "win_point": 0
        },
        "squad-fpp": {
            "assists": 0,
            "avgRank": 0,
            "currentRank": {
                "tier": "Unranked",
                "subTier": "1"
            },
            "currentRankAnswer": "Unranked",
            "currentRankPoint": 0,
            "bestRank": {
                "tier": "Unranked",
                "subTier": "1"
            },
            "bestRankAnswer": "Unranked",
            "bestRankPoint": 0,
            "damageDealt": 0,
            "deaths": 0,
            "dBNOs": 0,
            "KDA_point": 0,
            "KD_point": 0,
            "kills": 0,
            "roundsPlayed": 0,
            "top10s": 0,
            "top10_point": 0,
            "wins": 0,
            "win_point": 0
        }
    }
}
기본
  • id: 유저의 ID(문자)
  • gamemode: 게임모드 별 전적을 반환합니다. [solo, solo-fpp, squad, squad-fpp] (json)
게임모드 별 정보(gamemode)
  • assists: 어시스트 [숫자]
  • avgRank: 평균 순위 [숫자]
  • bestRank 최대 랭크 [json]
  • bestRankAnswer: 최대 랭크(한 문자로 통합시켰습니다.) [문자]
  • bestRankPoint: 최대 랭크 점수 [숫자]
  • currentRank 현재 랭크 [json]
  • currentRankAnswer: 현재 랭크(한 문자로 통합시켰습니다.) [문자]
  • currentRankPoint: 현재 랭크 점수 [숫자]
  • dBNOs: dBNO(Down But Not Out, 기절하였지만 아웃으로 처리되지 않은 것)횟수 [숫자]
  • damageDealt: 평균 피해량 [숫자]
  • deaths: 패배(사망) 횟수 [숫자]
  • KDA_point: 킬/데스/어시스트 점수 [소수]
  • KD_point": 킬/데스 점수 [소수]
  • kills: 킬 횟수 [숫자]
  • roundsPlayed: 플레이 횟수 [숫자]
  • top10s: 탑률 [숫자]
  • top10s_point: top10 점수 [소수]
  • wins: 우승 횟수 [숫자]
  • wins_point: 승률 [소수]

/normal/update

검색하는 유저에 일반 전적을 업데이트 합니다.

https://yhs.kr/api/PUBG/ranked/update

매개변수

/ id season
요청하는 정보 유저의 ID 시즌(옵션)
요청 형태 string(문자) string(문자)

/ranked/update

검색하는 유저에 경쟁 전적을 업데이트 합니다.

https://yhs.kr/api/PUBG/ranked/update

매개변수

/ id season
요청하는 정보 유저의 ID 시즌(옵션)
요청 형태 string(문자) string(문자)

/change_platform

만약 유저 플랫폼 정보를 잘못 등록했을 경우 위 기능을 통하여 변경하실 수 있습니다.

https://yhs.kr/api/PUBG/change_platform

매개변수

/ platform nickname
요청하는 정보 플랫폼 정보 유저명
요청 형태 number(숫자) string(문자)

오류 반환 정보

오류의 정보는 status code와 오류내 반환값을 통해 를 통해 확인하실 수 있습니다.
반환해야하는 정보가 굳이 없는 경우 아래의 값이 반환됩니다.

{
    "code": "00",
    "msg": "successfully."
}
  • 200(00): 성공적으로 반환됨.
  • 400(01,02): 누락된 정보(msg 확인 요망)
  • 400(05): /PUBG/player를 통해 유저를 DB에 우선적으로 등록해주기 바람.
  • 400(06): platform 매개변수의 값이 형태가 잘못됨.
  • 400(07): platform 매개변수의 값이 잘못됨. (0-4)의 정보만 받을수 있음.
  • 400(08): 시즌 정보는 오직 숫자를 통해 받을 수 있음.
  • 401(03): DB로 부터 불러오는 것을 실패함.
  • 404(04): 정보를 찾을 수 없음
  • 431(31): 콘텐츠 규격이 잘못됨.
  • 432(32): 너무 많은 요청이 들어옴.
  • 433(33): 알 수없는 오류가 발생함.