군붕이의 메모장

Riot API - APIS 에 존재하는 API들 호출해보기 본문

프로젝트/롤 전적검색 사이트

Riot API - APIS 에 존재하는 API들 호출해보기

초보군붕이 2021. 2. 21. 17:07
반응형

우선 롤 전적검색 사이트를 만들기에 앞서 라이엇에서 제공하는 데이터가 무엇인지 확인할 필요가 있다고 생각했다.

 

리그오브레전드, 리그오브룬테라, TFT전략적팀전투(롤토체스), 발로란트 의 데이터를 제공하지만 플레이해본 리그오브레전드와 관련된 API 만 사용해볼려고 한다.

 

리그오브레전드 무한의대검

● ACCOUNT-V1

ACCOUNT-V1 상단 문구

Americas, Asia, Europe 을 대상으로 만들어진 API로 추정. 나는 한국서버만 다룰꺼기 때문에 생략했다.

 

 

● CHAMPION-MASTERY-V4

CHAMPION-MASTERY-V4 에는 총 3가지 API가 존재한다.

CHAMPION-MASTERY-V4 의 API 목록

 

 

API 설명

API /lol/champion-mastery/v4/champion-masteries/by-summoner/{encryptedSummonerId}
Description Get all champion mastery entries sorted by number of champion points descending
기능 모든 챔피언의 숙련도? 항목을 챔피언 점수를 기준으로 오름차순 출력


호출 결과

{
	"championId": 76,
	"championLevel": 6,
	"championPoints": 125457,
	"lastPlayTime": 1613807309000,
	"championPointsSinceLastLevel": 103857,
	"championPointsUntilNextLevel": 0,
	"chestGranted": false,
	"tokensEarned": 1,
	"summonerId": "모자이크"
}, {
	"championId": 21,
	"championLevel": 5,
	"championPoints": 123481,
	"lastPlayTime": 1613481344000,
	"championPointsSinceLastLevel": 101881,
	"championPointsUntilNextLevel": 0,
	"chestGranted": true,
	"tokensEarned": 2,
	"summonerId": "모자이크"
},
  • championId : 챔피언의 고유 ID. 76번의 경우 니달리는 뜻한다
  • championLevel : 챔피언의 레벨이다. 1~7까지 존재하는데 나는 6레벨로 올렸나보다
  • championPoints : 챔피언의 숙련도이다. 주라인은 서폿인데 왜 이게제일 높은지 모르겠다
  • lastPlayTime : Unix milliseconds time format 으로 반환한다. 이를 날짜로 변환하면 2021-02-20 16:48:29 가 된다. ( 어제 우르프에서 플레이한거 들킴.. )
  • championPointsSinceLastLevel : 현재 레벨에서 획득한 경험치를 뜻하는거같다.
  • championPointsUntilNextLevel : 다음 레벨까지 필요한 경험치의 양이다. 6 -> 7은 인장이 필요해서 0인거 같다.
  • tokensEarned : 6레벨을 찍기위해 필요한 토큰의 수 같다. 나는 1개가 더 필요하다고 한다
  • summonerId : 소환사의 고유 id 이다. 보안상 모자이크 했다.

API 설명

API /lol/champion-mastery/v4/champion-masteries/by-summoner/{encryptedSummonerId}/by-champion/{championId}
Description Get a champion mastery by player ID and champion ID.
기능 소환사 ID와 챔피언ID를 통해 챔피언의 숙력도 항목을 가져온다.

 

호출결과

{
	"championId": 76,
	"championLevel": 6,
	"championPoints": 125457,
	"lastPlayTime": 1613807309000,
	"championPointsSinceLastLevel": 103857,
	"championPointsUntilNextLevel": 0,
	"chestGranted": false,
	"tokensEarned": 1,
	"summonerId": "모자이크"
}

모든 챔피언의 데이터가 아닌 특정 챔피언의 정보를 가져온다.

 


API 설명

API /lol/champion-mastery/v4/scores/by-summoner/{encryptedSummonerId}
Description Get a champion mastery by player ID and champion ID.Get a player's total champion mastery score, which is the sum of individual champion mastery levels
기능 소환사의 고유 ID를 기준으로 플레이어의 챔피언 숙련도 레벨을 가져온다. 이 레벨은 개인적인 챔피언 숙련도의 합산 레벨이다. (내부적으로 계산식이 존재하는것 같음)

 

호출결과

278

나의 경우 278 이라는 점수가 리턴됬다. 그러면 페이커 선수의 점수는 어떨까??

612

나보다 약 2배 이상 높은 612점이 리턴됬다. 역시 페이커 선수다..

 

● CHAMPION-V3

CHAMPION-V3 에는 총 1가지 API가 존재한다.

CHAMPION-V3 의 API 목록

 

API 설명

API  /lol/platform/v3/champion-rotations
Description Returns champion rotations, including free-to-play and low-level free-to-play rotations (REST)
기능 로테이션 챔프언과 저레벨 유저들을 위한 무료 챔피언 정보를 제공해준다.

 

호출결과

{
	"freeChampionIds": [14, 21, 24, 34, 43, 48, 51, 53, 85, 101, 115, 157, 223, 240, 876],
	"freeChampionIdsForNewPlayers": [18, 81, 92, 141, 37, 238, 19, 45, 25, 64],
	"maxNewPlayerLevel": 10
}
  • freeChampionIds : 로테이션 챔피언들의 ID 이다.
  • freefreeChampionIdsForNewPlayers : 저레벨 유저가 무료로 사용할 수 있는 챔피언들의 ID 이다.
  • maxNewPlayerLevel : 신규 저레벨 플레이어의 최대 레벨이다. 10까지 무료로 사용이 가능한것같다.

 

● CLASH-V1

CLASH-V1 은 총 5개의 API가 존재한다.

CLASH-V1 의 API 목록

이름을 보아하니 격전과 관련된 API 인것같다. 격전을 플레이해본적이 없어서 데이터가 없다.. 추후 플레이하게되면 호출해볼 예정이다.

 

LEAGUE-EXP-V4

LEAUE-EXP-V4 은 총 1개의 API가 존재한다.

LEAGUE-EXP-V4 의 API 목록

 

API 설명

API /lol/league-exp/v4/entries/{queue}/{tier}/{division}
Description Get all the league entries
기능 특정 queue(솔랭, 자랭)에 tier(아이언~챌린저)/division(I ~ IV) 의 소환사들을 가져온다

 

호출결과

[{
	"leagueId": "a2ff5094-4e41-4148-937b-f7660792d472",
	"queueType": "RANKED_SOLO_5x5",
	"tier": "GOLD",
	"rank": "II",
	"summonerId": "모자이크",
	"summonerName": "BJ화려한솔로킬",
	"leaguePoints": 13,
	"wins": 65,
	"losses": 54,
	"veteran": false,
	"inactive": false,
	"freshBlood": false,
	"hotStreak": false
},
  • leagueId : 리그의 고유 Id로 추정됨
  • queueType : 솔로랭크(RANKED_SOLO_5x5)를 뜻함
  • tier : 티어
  • rank : 골드 N티어 라고 부를때 N의 값
  • summonorId : 소환사 고유 ID
  • summonorName : 롤 닉네임
  • leaguePoints : 롤 랭크 포인트
  • wins : 승리한 횟수
  • losses : 패배한 횟수

그외는 뭔지 모르겠다..

 

● LEAGUE-V4

LEAGUE-V4 는 6개의 API가 존재한다. 한개의 API는 중복되어 제외했다.

LEAGUE-V4 의 API 목록

 

API 설명

API /lol/league/v4/challengerleagues/by-queue/{queue}
Description Get the challenger league for given queue
기능 특정 queue에 대한 챌린저 티어의 정보를 가져온다.

 

 

호출결과

{
	"tier": "CHALLENGER",
	"leagueId": "d1ff3466-6c02-33b0-8085-9fa6a8b82dd5",
	"queue": "RANKED_SOLO_5x5",
	"name": "Poppy's Scions",
	"entries": [{
		"summonerId": "ㅁㅁㅁㅁ",
		"summonerName": "ubao",
		"leaguePoints": 1007,
		"rank": "I",
		"wins": 161,
		"losses": 123,
		"veteran": true,
		"inactive": false,
		"freshBlood": false,
		"hotStreak": false
	},

entries 내부에 솔로랭크 첼린저에 속한 유저분들의 정보가 리턴된다.

 


 

API 설명

API /lol/league/v4/entries/by-summoner/{encryptedSummonerId}
Description Get league entries in all queues for a given summoner ID
기능 소환사 ID에 대한 리그 정보들을 가져온다.

 

호출결과

[{
	"leagueId": "ㅁㅁㅁㅁ",
	"queueType": "RANKED_SOLO_5x5",
	"tier": "GOLD",
	"rank": "II",
	"summonerId": "ㅁㅁㅁㅁ",
	"summonerName": "ㅁㅁㅁㅁ",
	"leaguePoints": 75,
	"wins": 30,
	"losses": 35,
	"veteran": false,
	"inactive": false,
	"freshBlood": false,
	"hotStreak": false
}]

현재 나의 솔로랭크 티어는 골드2 75포 이며 승률이 많이 안좋은것을 알 수 있다...

 


API 설명

API /lol/league/v4/grandmasterleagues/by-queue/{queue}
Description Get the grandmaster league of a specific queue
기능 특정 queue에 속한 그랜드마스터 유저들의 정보를 가져온다.

 

호출결과

{
	"tier": "GRANDMASTER",
	"leagueId": "a37af09b-ecb8-3664-9453-cf2b0138dd6e",
	"queue": "RANKED_SOLO_5x5",
	"name": "Master Yi's Snipers",
	"entries": [{
		"summonerId": "QRklyvsRTzLby4FT265VUPyFT-aE0QgnqbnsCgW_aGqJCw",
		"summonerName": "sup forever God",
		"leaguePoints": 186,
		"rank": "I",
		"wins": 59,
		"losses": 48,
		"veteran": false,
		"inactive": false,
		"freshBlood": true,
		"hotStreak": false
	},

챌린저티어와 동일하게 출력되는것을 확인할 수 있다.

 


API 설명

API /lol/league/v4/leagues/{leagueId}
Description Get league with given ID, including inactive entries
기능 특정 리그에 속한 소환사들을 가져온다.

 

호출결과

{
	"tier": "GRANDMASTER",
	"leagueId": "a37af09b-ecb8-3664-9453-cf2b0138dd6e",
	"queue": "RANKED_SOLO_5x5",
	"name": "Master Yi's Snipers",
	"entries": [{
		"summonerId": "uwUAvad4P-pJiZfowdBcxz6iXcR5l0FqFBdj9QKTC0HgnFU",
		"summonerName": "불만있음다표출해",
		"leaguePoints": 233,
		"rank": "I",
		"wins": 74,
		"losses": 46,
		"veteran": false,
		"inactive": false,
		"freshBlood": false,
		"hotStreak": false
	},

"sup forever god" 소환사는 "Master Yi's Snipers" 리그에 속해있다.

 

"Master Yi's Snipers" 리그의 고유 id 이며 "a37af09b-ecb8-3664-9453-cf2b0138dd6e" 해당 리그에 속한 유저들을 가져온 결과의 일부분이다.

 


API 설명

API /lol/league/v4/leagues/{leagueId}
Description Get league with given ID, including inactive entries
기능 특정 queue에 속한 마스터 티어의 소환사를 가져온다.

 

호출결과

{
	"tier": "MASTER",
	"leagueId": "dbb721c8-b8fa-3d0c-9727-bfa4eabefc30",
	"queue": "RANKED_SOLO_5x5",
	"name": "Jax's Vigilantes",
	"entries": [{
		"summonerId": "eMu3C4tBF19RKL6Jrjusfgbg6cB4Ptg9uzWqr88zUYdmZSY",
		"summonerName": "젠지 엔비",
		"leaguePoints": 0,
		"rank": "I",
		"wins": 17,
		"losses": 13,
		"veteran": false,
		"inactive": false,
		"freshBlood": false,
		"hotStreak": false
	}, 

마스터 티어의 유저들을 가져오게 된다.

 

 

● LOL-STATUS-V3

해당 API 는 2020년 12월 11일 부터 지원이 중지된것으로 보인다.

해당 API 는 지원이 중지되어 lol-status-v4 api 를 사용할 예정이다.

 

● LOL-STATUS-V4

LOL-STATUS-V4 는 1개의 API 가 존재한다.

 

LOL-STATUS-V4 의 API 목록

 

API 설명

API /lol/status/v4/platform-data
Description Get League of Legends status for the given platform
기능 특정 플래폼에 대한 리그오브레전드 상태를 가져온다.

 

호출결과

{
	"id": "KR",
	"name": "Korea",
	"locales": ["ko_KR"],
	"maintenances": [],
	"incidents": []
}

크게 쓸만한 정보는 없는것같다..

 

 

● MATCH-V4

MATCH-V4 에는 5개의 API 가 존재한다.

 

MATCH-V4 의 API 목록

 

API 설명

API /lol/match/v4/matches/{matchId}
Description Get match by match ID
기능 특정 match 에 대한 게임정보를 가져온다.

 

호출결과

{
	"gameId": ㅁㅁㅁㅁ,
	"platformId": "KR",
	"gameCreation": 1613809947132,
	"gameDuration": 1659,
	"queueId": 900,
	"mapId": 11,
	"seasonId": 13,
	"gameVersion": "11.4.360.513",
	"gameMode": "URF",
	"gameType": "MATCHED_GAME",
	"teams": [{
		"teamId": 100,
		"win": "Fail",
		"firstBlood": false,
		"firstTower": true,
		"firstInhibitor": true,
		"firstBaron": true,
		"firstDragon": true,
		"firstRiftHerald": false,
		"towerKills": 10,
		"inhibitorKills": 3,
		"baronKills": 1,
		"dragonKills": 3,
		"vilemawKills": 0,
		"riftHeraldKills": 0,
		"dominionVictoryScore": 0,
		"bans": []
	}
    
    ....

특정 게임에 대한 상세한 정보를 가져온다. json data 가 1500줄에 육박하여 일부만 업로드 했다.

 

핑크와드 구매갯수, 레벨, 팀원 챔피언, 구매한 아이템 등 정말 다양한 정보가 들어있다. 첨푸파일로 업로드 했으니 궁금하신분들은 한번 확인해보는것을 추천한다.

 

게임 정보 JSON 데이터.txt
0.04MB

 


  • /lol/match/v4/matches/by-tournament-code/{tournamentCode}/ids
  • /lol/match/v4/matches/{matchId}/by-tournament-code/{tournamentCode}

위 두개의 API는 마찬가지로 격전관련 API로 일단 생략했다.

 

● SPECTATOR-V4

SPECTATOR-V4 의 API는 2개가 존재한다.

 

SPECTATOR-V4 의 API 목록

 

 

API 설명

API /lol/spectator/v4/active-games/by-summoner/{encryptedSummonerId}
Description Get current game information for the given summoner ID
기능 특정소환사의 진행중인 게임정보를 가져온다.

 

호출결과

{
    "gameId": 5022003044,
    "mapId": 11,
    "gameMode": "CLASSIC",
    "gameType": "MATCHED_GAME",
    "gameQueueConfigId": 420,
    "participants": [
        {
            "teamId": 100,
            "spell1Id": 4,
            "spell2Id": 1,
            "championId": 18,
            "profileIconId": 7,
            "summonerName": "어하이유",
            "bot": false,
            "summonerId": "heupqRuGGtlekeITQupKFvm7oEryRQ2fTZAcAZXgvuanN9g",
            "gameCustomizationObjects": [],
            "perks": {
                "perkIds": [
                    9923,
                    8139,
                    8138,
                    8135,
                    9111,
                    9104,
                    5005,
                    5008,
                    5002
                ],
                "perkStyle": 8100,
                "perkSubStyle": 8000
            }
        },
        {
            "teamId": 100,
            "spell1Id": 4,
            "spell2Id": 11,
            "championId": 163,
            "profileIconId": 2073,
            "summonerName": "Song9",
            "bot": false,
            "summonerId": "h-VBg-L0izgRtst_M93Qx7DHD80h6FAGI25zPErUcdBZJKIPd2KFn8nLTA",
            "gameCustomizationObjects": [],
            "perks": {
                "perkIds": [

어하이유 유저의 데이터를 가져와봤다. 팀원의 정보, 플레이중인 챔피언, 스펠 등을 확인할 수 있다.

 


API 설명

API /lol/spectator/v4/featured-games
Description Get list of featured games.
기능 진행중인 게임의 정보를 가져온다.

 

호출결과

{
	"gameList": [{
				"gameId": 5022063290,
				"mapId": 12,
				"gameMode": "ARAM",
				"gameType": "MATCHED_GAME",
				"gameQueueConfigId": 450,
				"participants": [{
							"teamId": 100,
							"spell1Id": 3,
							"spell2Id": 4,
							"championId": 223,
							"skinIndex": 0,
							"profileIconId": 583,
							"summonerName": "mailpark",
							"bot": false
						},
						{
							"teamId": 100,
							"spell1Id": 4,
							"spell2Id": 7,
							"championId": 101,
							"skinIndex": 5,
							"profileIconId": 23,
							"summonerName": "즐겜유저박민영",
							"bot": false
						},

현재 진행중인 특정 게임을 가져오는것 같다. 모든 게임을 가져오는줄 알았으나 데이터를 정리해보니 총 5개의 게임을 가져왔다.

 

● SUMMONER-V4

SUMMONER-V4 는 4개의 API가 존재한다.

SUMMONER-V4 의 API 목록

 

 

API 설명

API /lol/summoner/v4/summoners/by-account/{encryptedAccountId}
Description Get a summoner by account ID
기능 AccountId 로 소환사의 정보를 가져온다.

 

호출결과

{
	"id": "ㅁㅁㅁㅁ",
	"accountId": "ㅁㅁㅁㅁ",
	"puuid": "ㅁㅁㅁㅁ",
	"name": "소환사이름",
	"profileIconId": 13,
	"revisionDate": 1613782838000,
	"summonerLevel": 177
}

소환사에 대한 여러가지 정보가 리턴된다. revistionDate 는 최근 활동했던 시간으로 Unix Miliseconds -> Human Date 로 변환시 2021년 2월 20일 오전 10:00 인것을 알 수 있다.

 

 

그 외 3가지 데이터 또한 Input Data 만 다르며 Return Data 는 동일하여 생략했다.

 


 

롤토체스, 발로란트, 리그오브룬테라 는 경험이 없어 추후 만약 하게된다면 이것도 도전해봐야겠다.

 

반응형