[TOY 1] OP.GG 클론 코딩 - ①
OP.GG 사이트 클론 코딩 하기
발급 받은 라이엇 API 키를 사용해서 API를 호출하자!
-- API 호출에는 Apache에서 제공하는 HttpClient를 사용, 사용언어는 JAVA
-- 사용언어는 JAVA다.
1. Riot API 확인하기
-
SUMMONER-V4 문서를 확인
-- 소환사 정보를 받는 API는 총 5개가 존재한다. 이중 summonerName(소환사명)을 사용하여 값을 받아보자. -
사용할 API를 클릭하고 하단에 테스트 툴을 사용해보자
-
응답코드가 200이라면 성공!
2. VSCode로 API 호출하는 코드 작성
- build.gradle - dependencies에 HttpClient를 추가해준다.
// http client
implementation 'org.apache.httpcomponents:httpclient'
- API 키 숨기기위해 resources > application.properties에 값 설정
#롤 api 키
RIOT_API_KEY=발급받은 키값
- API 문서에서 확인한 REQUEST URL과 REQUEST HEADERS를 참고해서 코드 작성
-- 간단하게 콘솔에 값이 찍히는 것만 확인
package com.gnar.cloneprojectopgg;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
import org.apache.http.client.ResponseHandler;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.BasicResponseHandler;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClientBuilder;
@RestController
public class OpggApiController {
@Value("${RIOT_API_KEY}")
private String riotApiKey;
private String riotUrl = "https://kr.api.riotgames.com";
private String searchNm = "%EC%B4%88%EC%BD%94%EC%9E%A0%EB%B3%B4";
public void get() {
try {
String requestUrl = riotUrl + "/lol/summoner/v4/summoners/by-name/" + searchNm;
//get 메서드와 URL 설정
HttpGet httpGet = new HttpGet(requestUrl);
//header 설정
httpGet.addHeader("User-Agent", "Mozilla/5.0");
httpGet.addHeader("Accept-Language", "ko-KR,ko;q=0.9,en-US;q=0.8,en;q=0.7");
httpGet.addHeader("Accept-Charset", "application/x-www-form-urlencoded; charset=UTF-8");
httpGet.addHeader("Origin", "https://developer.riotgames.com");
httpGet.addHeader("X-Riot-Token", riotApiKey);
CloseableHttpClient httpClient = HttpClientBuilder.create().build();
CloseableHttpResponse response = httpClient.execute(httpGet);
if (response.getStatusLine().getStatusCode() == 200) {
ResponseHandler<String> handler = new BasicResponseHandler();
String body = handler.handleResponse(response);
System.out.println(body);
}else{
System.out.println("response is error : " + response.getStatusLine().getStatusCode());
}
} catch (Exception e){
System.err.println(e.toString());
}
}
@GetMapping("/get")
// method 를 별도로 적지 않아도 됨
public String getTest() {
get();
return "op.gg 테스트";
}
}
- 프로젝트를 실행하고 http://localhost:8080/clone-project-opgg/get 접속
값이 잘 출력된다~ :)
Author And Source
이 문제에 관하여([TOY 1] OP.GG 클론 코딩 - ①), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@ddingmun8/TOY-1-OP.GG-클론-코딩-4bcdi4dw저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)