너 재택 때 롤 했지— Riot API 사용기

appless
podo_official
Published in
6 min readApr 30, 2020

사내 게임대회 전용 사이트를 만들어 볼 때 사용했던 Riot API 사용법과 대표적인 API소개 그리고 예제를 공유해보려고 한다. 라이엇은 친절하게도 게임관련 API 와 문서를 제공한다.

사용자 등록

사용자 등록은 다른 open API 와 비슷하다. 사용할 페이지 링크를 입력하면 된다. 테스트용으로 잠깐 사용할 Key 도 받을 수 있다. 개인용 Key는 1초에 20회 제한이 있다.

API Key 사용법

Key 는 쿼리나 Header 두 방식 모두 지원하는데 여기서는 편의를 위해 쿼리 방식으로 사용하겠다.

주요 API 소개

Summoner API

소환사 관련 API 들인데 소환사 이름으로 유저를 찾는 기능을 제공하며 변경한 이름으로는 찾을 수 없다. 페이커의 데이터를 호출해 보았다.

소환사 api는 어떤 데이터로 요청하든 summonerId, accountId, puuid 와 소환사 아이콘 그리고 최근 접속일을 제공한다. 유용하게 쓰일 수 있을 것 같은 데이터다.

대규모 패치를 진행하면서 과거에는 리턴 값이 정수였는데 암호화 된 String 으로 변경됐다. 암호화 되면 다른 api 에 어떻게 호출하지 ? 라고 걱정할 필요가 없다 전부 암호화 된 Id 로 받는다.

Match API

전적검색 사이트의 메인이라고 할 수 있는 게임 전적검색 API 이다 사용자 정보에서 빼내온 accountId 로 호출이 가능하다.

시즌, 큐 종류, 해당 유저가 사용한 champion, gameId 인지 듀오인지 어느 라인을 갔는지도 나온다. 라인정보는 부정확한경우가 있는 것 같아서 그대로 가져다가 프로덕션에서 사용하기에는 무리가 있다.

여기서 얻어낸 gameId 로 해당 게임의 상세정보를 호출 할 수 있다.

이 API는 해당 게임의 모든 타임라인을 알려준다. 모든 킬과 오브젝트 이벤트들이 모두 표기되고 딜량 데이터도 여기에 포함된다. 사용자 별로 사용한 아이템과 룬(Perk) 정보도 포함되어 있고 심지어 카정한 정글 몬스터의 개수도 나온다.

Spectator API

관전자용 API 이다 해당 사용자가 진행중인 게임을 알 수 있다.

현재 진행중인 게임이 없으면 404 코드가 리턴 되고 진행중인 게임이 있으면 해당 게임에 플레이중인 소환사들의 정보와 룬 등이 나온다.

featured-games api 가 있는데 실시간으로 관전되고 있는 특정 게임을 리턴해준다. 몇번 호출해보니 대부분 상위 랭커들의 게임을 리턴해준다.

예전에는 riot api developer 들 discussion 페이지를 따로 마련해줬었는데 지금은 사라졌고 github 으로 통합한것 같다.

Riot CDN

API 는 결국 id값을 리턴해줄 뿐이다 그럼 리소스는 어떻게 얻는가? 이전에는 라이엇 리소스 제공해주는 cdn 서비스 만을 제공하는 사이트가 있었는데 이제는 라이엇이 직접제공해준다.

롤 관련 페이지 제작의 허들

라이엇이 이렇게 다양하게 데이터를 제공해줌에도 불구하고 페이지제작을 관두게 된 이유는 크게 2가지였다.

  1. API 의 변화에 사이트가 민감하다.
    만들던 사이트는 거창하게 사업을 할 목적이 아니고 순수하게 친구들과 토이 프로젝트로 만들었었는데 2017년도에 API 제공에 큰 변화가 생겼다. 그 중 크리티컬 했던게 통계 데이터를 더 이상 제공하지 않기 시작했다는 점이다. 통계 데이터에 포함되었던 내용은 시즌별 모스트 챔피언 및 승률 과 KDA 정보 등이었다. 현재 여러개의 전적사이트가 비슷한 데이터셋을 가진 이유는 아마 이 통계 API 힘이 컸을 거라고 생각한다. 2017년 부터 이 통계 API 가 사라지고 raw 데이터를 제공할 테니 직접 계산해서 쓰는 것으로 정책이 바뀌었다. 내가 기억하기로는 이시기즘에 전적검색 사이트들의 로딩시간이 꽤 길어졌던것으로 기억한다. 나중에는 데이터를 많이 쌓았는지 빨라졌지만, 특정 게임회사의 Open API 에 종속되다 보니 API 의 변동은 이렇게 꽤 큰 영향을 미친다. 룬 페이지를 변경해서 계정인증을 시켰던 모 사이트의 인증도 룬 페이지 API 가 없어지면서 사라졌다.
  2. 호출 횟수의 제약
    Production 인증을 다 받고 나면 얼마나 호출횟수를 추가로 요청할 수도있겠지만 초당 20회 분당 100회의 제한은 데이터 연산을 하기에 어려움이 있었다. 통계 데이터를 제공하지 않기 시작하고 부터는 데이터를 일일이 계산해야 했기 때문에 개발 초반에는 배치를 돌리면서 데이터 쌓는 작업만 한 기억이 있다. 최근 찾아보니 데이터를 쌓아서 승패예측을 하는 프로그램도 있었다.

이러나 저러나 다른 게임들과 비교해도 제품등록을 안 해도 게임데이터를 이정도로 제공해주는 게임회사가 별로없다. 이걸로 대단한 걸 만들지 않아도 나랑 게임하는 저 친구들이 듀오인지 롤을 켜볼 순 없지만 전적사이트를 들어가지 않고도 개발하는 척 내 친구가 지금 접속중인지 확인해 볼 수 있다.

재미가 있으니 다들 들어가서 한번씩 호출해보자

Reference

끝!

--

--