일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- Github Actions
- docker
- route53
- GlobalStyle
- riotapi
- s3
- AWS
- nestjs
- Python
- Recoil
- code-server
- 자바스크립트
- 카카오 로그인
- typeorm
- 배포
- liunx
- e.preventDefault()
- 리액트
- Object.freeze()
- e.stopPropagation()
- mysqlclient
- ACM
- ci/cd
- CloudFront
- 전역스타일
- 롤
- styled-component
- Django
- React
- requests
- Today
- Total
군붕이의 메모장
Riot API - APIS 에 존재하는 API들 호출해보기 본문
우선 롤 전적검색 사이트를 만들기에 앞서 라이엇에서 제공하는 데이터가 무엇인지 확인할 필요가 있다고 생각했다.
리그오브레전드, 리그오브룬테라, TFT전략적팀전투(롤토체스), 발로란트 의 데이터를 제공하지만 플레이해본 리그오브레전드와 관련된 API 만 사용해볼려고 한다.
● ACCOUNT-V1
Americas, Asia, Europe 을 대상으로 만들어진 API로 추정. 나는 한국서버만 다룰꺼기 때문에 생략했다.
● CHAMPION-MASTERY-V4
CHAMPION-MASTERY-V4 에는 총 3가지 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가 존재한다.
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가 존재한다.
이름을 보아하니 격전과 관련된 API 인것같다. 격전을 플레이해본적이 없어서 데이터가 없다.. 추후 플레이하게되면 호출해볼 예정이다.
● LEAGUE-EXP-V4
LEAUE-EXP-V4 은 총 1개의 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는 중복되어 제외했다.
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 는 지원이 중지되어 lol-status-v4 api 를 사용할 예정이다.
● LOL-STATUS-V4
LOL-STATUS-V4 는 1개의 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 가 존재한다.
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줄에 육박하여 일부만 업로드 했다.
핑크와드 구매갯수, 레벨, 팀원 챔피언, 구매한 아이템 등 정말 다양한 정보가 들어있다. 첨푸파일로 업로드 했으니 궁금하신분들은 한번 확인해보는것을 추천한다.
- /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개가 존재한다.
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가 존재한다.
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 는 동일하여 생략했다.
롤토체스, 발로란트, 리그오브룬테라 는 경험이 없어 추후 만약 하게된다면 이것도 도전해봐야겠다.
'프로젝트 > 롤 전적검색 사이트' 카테고리의 다른 글
전적 검색을 위한 Riot API 발급 및 사용법 (0) | 2021.02.21 |
---|