celina의 이것저것
[SpringBoot] OpenAPI를 이용해서 Spring Boot와 연동 본문
반응형
한국관광공사에서 제공하는 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