제쿵
작은 책방
제쿵
전체 방문자
오늘
어제
  • 분류 전체보기 (34)
    • SideProject (3)
    • Diary (1)
    • Algorithm (1)
    • Smarteer Suppoters (15)
      • Project (5)
      • Study (7)
      • Journal (3)
    • Fish (11)
    • Guitar (1)

블로그 메뉴

  • 홈

공지사항

인기 글

hELLO · Designed By 정상우.
제쿵

작은 책방

롤 전적 사이트 만들기 - RIOT API #1
SideProject

롤 전적 사이트 만들기 - RIOT API #1

2023. 3. 12. 17:36

전부터 간단하게라도 만들어 보고 싶었지만 많이 미뤘다.

 

https://15gg.info/

 

15GG

 

15gg.info

 

https://github.com/tkroahdla/15gg

 

https://developer.riotgames.com/

RIOT이 게임에 대한 정보들은 반환해주는 api를 이용 할 수있다.

기존 게임 계정으로도 developer api를 발급 받을 수 있다.

 

op.gg 나 for.kr을 보면서 무엇이 필요한지 생각했다.

fow.kr에서 검색한 Faker 선수의 프로필

 

 1. 제공 될줄 알았지만 그렇지 않았던 것들

1. 시즌별 마감 Rank 티어 ( 고점, 저점 ) - 이거 제공해주지 않았다.

아마도 저쪽 서비스에서 자체적으로 DB를 가지고 고점, 저점 갱신하거나 시즌이 마감되면 소환사에 대해서 개별적으로 저장하는 것 같다.

 

2. 랭킹 : 특정 소환사가 상위 몇 %인지 , 또는 순위가 몇등인지 알수없다.

상위 랭킹 소환사에 대해서는 개별적으로 리스트를 반환해주는 api가 존재하지만, 저티어의 경우 어떤 티어의 몇번째 페이지 이런식으로 검색해서 찾아야하는데 사실상 불가능하다.

상위 랭킹 소환사는 수가 적어서 몇번 싸이클 돌리면 찾을 수 있지만 저티어 소환사의 경우 쉽지 않다.

다만 어떤 티어가 몇퍼센트를 차지하는지 반환해주는 api가 있는데 거기서 유추하는건 가능할 것으로 보인다.

 

 2. API 호출 순서

위쪽 타 전적 검색 서비스들 처럼 뭔가 꾸미고 싶었는데, 상단 프로필 정보가 생각보다 허전해져서 슬펐다.

Riot API - GET방식으로 호출하고 apikey는 QueryParam, HeaderParam 방식으로 전송한다.

 

api 호출과 흐름

1. 소환사명으로 api를 호출해서 소환사 프로필 정보를 가져온다.

https://kr.api.riotgames.com/lol/summoner/v4/summoners/by-name/{소환사명}

이런식으로 가져오게 된다.

 활용하게 되는건 profileIconId와 summonerLevel이다.

프로필 아이콘을 포함해서 각종 이미지들은 아래 링크에서 구할 수 있다.

프로필, 챔피언, 스킬, 룬 등등

https://developer.riotgames.com/docs/lol

 

위 링크에서 받은 폴더 경로대로 호출하면 아이콘을 주는 api가 있는데,

검색해보니까 이렇게 배포하는 용도로 제공하는 api가 아니다 라는 글이 있었다.

정직하게 1.3G 파일 다운 받아서 사용했다.

근데 프로필 이미지만 400MB가 되는거 보고 다시 생각이 바뀌었다.

그때그때 마다 호출해서 쓰기로했다.

 

2. 소환사의 티어 정보를 가져온다.

https://kr.api.riotgames.com/lol/league/v4/entries/by-summoner/{소환사Id}

1번 에서 받아온 소한사 id를 가지고 소환사의 티어정보에 대해 호출한다.

여기서 먼저 체크해야 되는건, queueType이다.

이게 솔로랭크인지, 자유랭크인지, TFT랭크 인지 판별해야한다.

랭크에 대해서만 정보를 가져오고 싶어서, 배열안에 queueType이

"RANKED_SOLO_5x5" | "RANKED_FLEX_SR"

위 둘 중 하나인지 판별해서 확인했다.

queueType

leaguePoints

losses

wins

rank

tier

위 데이터들을 활용했다.

 

3. 최근 게임 ids 가져오기

https://asia.api.riotgames.com/lol/match/v5/matches/by-puuid/{소환사puuid}/ids?type=ranked&start=0&count=20

1번에서 받은 소환사의 puuid를 사용한다.

 

type은 게임타입이다. 뒤에 count는 가져오는 게임의 수인데 20~100 까지 허용된다.

이런식으로 가져오게된다. 뒤에 19번째 배열이 가장 최근 게임이다.

 

4. 개별 게임에 대한 정보를 요청한다.

위에서 받은 게임 matchid로 호출한다.

https://asia.api.riotgames.com/lol/match/v5/matches/{matchId}

 

 

예상은 했는데, 생각보다 표시 해야할 정보가 많았다.

 

간단하게 게임 정보 표시하고 다음 포스팅에서 끝내려고한다.

'SideProject' 카테고리의 다른 글
  • [AWS ec2] nextjs run build 멈춤
  • 롤 전적 사이트 만들기 - RIOT API #2
제쿵
제쿵
한 색은 갑자기 다른 색을 비춘다.

티스토리툴바