celina의 이것저것

[SpringBoot] OpenAPI를 이용해서 Spring Boot와 연동 본문

Project/경남SW경진대회

[SpringBoot] OpenAPI를 이용해서 Spring Boot와 연동

celinayk 2023. 9. 12. 17:31
반응형

한국관광공사에서 제공하는 OpenAPI를 이용하여 SpringBoot와 연동을 해보았다.

POSTMAN으로 API를 가져오면 이런 데이터를 얻을 수 있다는걸 볼 수 있다

 

 

 

 

package controller;

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.nio.charset.StandardCharsets;

//Restful API 처리하는 컨트롤러 클래스
@RestController
public class TourismController {

    @GetMapping("/apitest")
    public String callApi() {

        StringBuilder result = new StringBuilder();
        try {
            String apiUrl = "https://apis.data.go.kr/B551011/KorService1/searchFestival1?" +
                    "serviceKey=bx85ZQyXZ%2BzD6Aah4J9Bz7yZ55piQrVEGw0378dm6fkhBh6mQIFwhoQTcpjUKSbZ3NVfcN%2BtdmU2RHEpNpcIzg%3D%3D" +
                    "&numOfRows=10" +
                    "&MobileOS=ETC" +
                    "&MobileApp=AppTest" +
                    "&_type=json" +
                    "&listYN=Y" +
                    "&arrange=A" +
                    "&eventStartDate=20170901";

            URL url = new URL(apiUrl);
            HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
            urlConnection.setRequestMethod("GET");

            BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(urlConnection.getInputStream(), StandardCharsets.UTF_8));

            String returnLine;
            while((returnLine= bufferedReader.readLine())!=null) {
                result.append(returnLine).append("\n");
            }
            urlConnection.disconnect();

        } catch (Exception e) {
            e.printStackTrace();
        }

        return result.toString();
    }
}

 

필요한 요청변수는 사이트를 보면 알 수있다. 이걸 토대로 코드를 작성하면 된다

 

 

성공!

 

 

여기까지의 과정은 외부 API에서 JSON형식의 응답을 받아와서 문자열로 반환하는것까지의 과정이다.

JSON데이터를 받아오기만 해서는 데이터를 활용할 수 없다.

이 받아온 JSON데이터를 Java객체로 변환해서 활용을 해야한다 이를 통해 db에저장하고 가공할 수 있음 

'Project > 경남SW경진대회' 카테고리의 다른 글

[GitHub] 깃허브로 협업  (0) 2023.09.11
Comments