위 링크로 가시고, API 키값을 할당 받으면, 라이엇 API를 사용할 수 있습니다.
(처음 2주동안은 Develop Key를 사용했고 그 뒤에는 Personal Key를 받아서 사용했습니다.)
먼저, 라이엇에 API 요청을 하면 응답으로 받은 JSON데이터를 JAVA 객체로 변환을 해야했습니다.
변환된 객체를 Entity로 만들어서 Mysql DB에 저장되게 하는 연습을 하는 과정을 가졌습니다.
롤 챔피언 정보를 가지고 연습하기 되게 좋아서, 챔피언 정보를 저장하는 걸 확인하며, 코딩을 했습니다.
챔피언 정보는 위 링크와 다르게 여기📌로 가셔서 게임관련 데이터를 받을 수 있습니다.
//롤 모든 챔피언 정보
public static final String CHAMP_INFO =
"http://ddragon.leagueoflegends.com/cdn/{version}/data/ko_KR/champion.json";
위 API는 해당 버전에 맞게 롤에 존재하는 모든 챔피언 정보를 보여줍니다.
챔피언 고유 key 번호 , 이름, 설명, 이미지, 역할군, 기본 스텟 등을 받아올 수 있습니다.
따라서 이 API를 토대로 모든 챔피언의 key값을 알 수 있고, 이름을 알 수 있습니다.
// 특정 챔피언 상세정보
public static final String CHAMP_DETAILS =
"http://ddragon.leagueoflegends.com/cdn/{version}/data/ko_KR/champion/{championName}.json";
특정 챔피언 상세 정보가 들어있는 json파일을 받을 수 있습니다.
{championName}
위치에 위에서 받아온 챔피언 이름을 집어 넣으면 해당 챔피언의 스킬, 스킨 등의 정보까지 받아올 수 있습니다.
Spring에서 지원하며, 객체로 간편하게 Rest 방식 API를 호출할 수 있는 내장 클래스로 RestTemplate
를 사용했습니다.
//"http://ddragon.leagueoflegends.com/cdn/{version}/data/ko_KR/champion.json"
URI uri = createUriComponent(/*API URI*/)
.encode()
.buildAndExpand(version)
.toUri();
버전 역시 위 API URI를 보시면 동적으로 변하기 때문에 파라미터로 넣어줬습니다.
(글 작성일 기준 12.15.1 버전 이네요..^^)
createUriComponent
에는 String타입으로 저장해둔 API URI를 넣습니다.
encode
는 문자열에 한글 등의 문자를 인코딩해주는 메서드입니다.
buildAndExpand
는 스트링에 {version}
처럼 동적으로 변하는 문자에 넣을 수 있습니다.
만약 API에 동적으로 변하는 파라미터가 필요 없다면
아래처럼 .buildAndExpand
를 .build
로 사용하시면 됩니다.
//"https://ddragon.leagueoflegends.com/api/versions.json";
private String[] checkVersion() {
URI uri = createUriComponent(/*API URI*/)
.encode()
.build().toUri();
String[] result = restTemplate.getForObject(uri, String[].class);
return result;
}
위 코드에서는 버전 정보가 담긴 JSON파일을 getForObject
메서드를 사용해서 String 배열로 받았습니다.
[
"12.15.1",
"12.14.1",
"12.13.1",
"12.12.1",
"12.11.1",
"12.10.1",
"12.9.1",
"12.8.1",
"12.7.1",
"12.6.1",
"12.5.1",
"12.4.1",
"12.3.1",
"12.2.1",
.... 생략
]
버전 정보는 이런식으로 리스트 형태로 오기 때문에 String 배열로 받을 수 있습니다.
응답으로 오는 JSON 형식에 따라서 getForObject
메서드의 두번째 파라미터의 클래스 타입을 제대로 설정해주어야 합니다.