● API(Application Programming Interface)란,
애플리케이션 소프트웨어나 데이터베이스, 컴퓨터 하드웨어 간의 상호작용을 가능하게 하는 인터페이다. 즉, 서로 다른 소프트웨어 시스템이 서로 통신하고 데이터를 교환할 수 있도록 돕는 도구와 규약의 집합이다. API는 '계약'처럼 작동하여, 한 시스템이 다른 시스템에게 요청할 수 있는 작업들과 그에 대한 형식, 규칙을 정의한다.

● 공공데이터 포털에서 한국환경공단_에어코리아_대기오염정보 API 신청

● 공공데이터 API를 사용하기 위해 주의 깊게 서비스 정보에 대해서 파악 해야한다.

● 다음은 자바에서 인증키와 End Point를 이용해 API의 데이터를 가져오는 예시이다.
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLEncoder;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
public class SimpleAirKoreaApiCaller {
// API URL 및 파라미터 설정
private static final String API_URL = "여기에 End Point 즉, 주소를 기입";
private static final String SERVICE_KEY = "여기에 서비스키를 기입";
public static void main(String[] args) {
try {
// API 요청 URL 생성
String encodedCityName = URLEncoder.encode("서울특별시", "UTF-8");
StringBuilder urlBuilder = new StringBuilder(API_URL);
urlBuilder.append("?serviceKey=").append(SERVICE_KEY);
urlBuilder.append("&returnType=json");
urlBuilder.append("&stationName=").append(encodedCityName);
urlBuilder.append("&dataTerm=DAILY");
urlBuilder.append("&ver=1.3");
// HTTP 연결 설정 및 요청 수행
URL url = new URL(urlBuilder.toString());
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("GET");
conn.setRequestProperty("Accept", "application/json");
// 응답 받기
BufferedReader rd;
if (conn.getResponseCode() == HttpURLConnection.HTTP_OK) {
rd = new BufferedReader(new InputStreamReader(conn.getInputStream()));
ObjectMapper mapper = new ObjectMapper();
JsonNode rootNode = mapper.readTree(rd);
rd.close();
// JSON 데이터에서 필요한 부분 가져오기
JsonNode itemsNode = rootNode.path("response").path("body").path("items");
System.out.println(itemsNode);
} else {
System.err.println("API 호출 실패: " + conn.getResponseCode());
}
conn.disconnect();
} catch (Exception e) {
e.printStackTrace();
}
}
}