[TOY 1]OP.GGクローンコード-①


エンコードOP.GGサイトクローン


リリースされたLiott APIキーを使用してAPIを呼び出す!
--APIはApacheが提供するHttpClientを呼び出し、言語はJAVAである.
--使われている言語はJAVAです.

1.Riot APIの表示


  • SUMMONER-V4文書の確認
    --召喚師情報を受信するAPIは5つあります.二重召喚者Name(召喚ミッション)を使用して値を取得します.

  • 使用するAPIをクリックし、下部でテストツールを使用します.


  • レスポンスコードが200なら成功!

  • 2.VscodeでAPIを呼び出すコードの作成

  • build.gradle-依存項目にHttpClientを追加します.
  • // http client
    implementation 'org.apache.httpcomponents:httpclient'
  • APIキーを非表示にするリソース>アプリケーション.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に接続
  • 値出力良好~:)