서론
본 글에서는 NodeJS를 활용하여 Open API를 읽어오는 방법에 대해 상세하게 알아보겠습니다. 이를 통해 개발자들이 Open API와 상호작용하는 방법을 이해할 수 있으며, 이를 활용하여 다양한 서비스를 제공할 수 있습니다.
1. Open API 개요
1.1. Open API의 정의
Open API(오픈 애플리케이션 프로그래밍 인터페이스)란, 개발자들이 자유롭게 사용할 수 있도록 공개된 API(Application Programming Interface)를 의미합니다. 이를 통해 개발자들은 특정 웹 사이트나 애플리케이션의 기능과 데이터에 접근할 수 있으며, 이를 활용하여 새로운 서비스를 만들거나 기존 서비스를 개선할 수 있습니다.
1.2. Open API의 장점
- 데이터 공유를 통한 서비스 개선
- 개발자들의 참여 확대와 협업 강화
- 비용 절감 및 개발 효율성 향상
2. NodeJS에서 Open API를 읽어 오는 방법
2.1. 필요한 모듈 설치
먼저, NodeJS에서 Open API를 사용하기 위해 필요한 모듈을 설치해야 합니다. 이 예제에서는 axios
모듈을 사용하겠습니다.
npm install axios
2.2. Open API 요청 및 응답 처리
다음은 NodeJS에서 Open API를 요청하고 응답을 처리하는 예제 코드입니다.
const axios = require('axios');
async function getOpenApiData(url) {
try {
const response = await axios.get(url);
return response.data;
} catch (error) {
console.error(`Error: ${error}`);
return null;
}
}
const openApiUrl = '오픈 API 주소';
getOpenApiData(openApiUrl)
.then(data => {
console.log(data);
})
.catch(error => {
console.error(`Error: ${error}`);
});
3. 실제 예제를 통한 Open API 활용
3.1. 공공 데이터 포털 Open API 활용 예제
이번 예제에서는 공공 데이터 포털에서 제공하는 날씨 정보 Open API를 활용해보겠습니다.
- 공공 데이터 포털(https://www.data.go.kr) 접속 후 회원가입 및 로그인
- 원하는 Open API 검색 후, 서비스 이용 신청
- 발급된 인증키 및 API 문서 확인 후 필요한 정보 정리
3.2. 날씨 정보 Open API 활용 코드 작성
공공 데이터 포털에서 발급받은 인증키와 API 문서를 바탕으로 날씨 정보를 조회하는 코드를 작성해보겠습니다.
const axios = require('axios');
async function getWeatherData(url) {
try {
const response = await axios.get(url);
return response.data;
} catch (error) {
console.error(`Error: ${error}`);
return null;
}
}
const apiKey = '발급받은 인증키';
const apiUrl = `http://apis.data.go.kr/1360000/VilageFcstInfoService/getVilageFcst?serviceKey=${apiKey}&pageNo=1&numOfRows=10&dataType=JSON&base_date=20211003&base_time=0500&nx=60&ny=127`;
getWeatherData(apiUrl)
.then(data => {
console.log(data);
})
.catch(error => {
console.error(`Error: ${error}`);
});
4. 데이터 가공 및 활용
응답 받은 데이터를 원하는 형태로 가공하여 활용할 수 있습니다. 예를 들어, 날씨 정보를 추출하여 웹 사이트에 표시하거나, 이메일을 통해 알림을 보낼 수 있습니다.
4.1. 날씨 정보 데이터 가공
응답 받은 날씨 정보 데이터에서 필요한 정보만 추출해보겠습니다.
function parseWeatherData(data) {
const weatherData = data.response.body.items.item;
const parsedData = weatherData.map(item => {
return {
category: item.category,
fcstTime: item.fcstTime,
fcstValue: item.fcstValue
};
});
return parsedData;
}
getWeatherData(apiUrl)
.then(data => {
const parsedData = parseWeatherData(data);
console.log(parsedData);
})
.catch(error => {
console.error(`Error: ${error}`);
});
4.2. 가공된 데이터 활용
가공된 날씨 정보를 웹 사이트에 표시하는 예제 코드입니다.
const http = require('http');
const fs = require('fs');
const server = http.createServer((req, res) => {
if (req.url === '/') {
getWeatherData(apiUrl)
.then(data => {
const parsedData = parseWeatherData(data);
res.writeHead(200, { 'Content-Type': 'text/html' });
res.write('<html><head><title>날씨 정보</title></head><body>');
res.write('<h1>날씨 정보</h1>');
res.write('<table><tr><th>category</th><th>fcstTime</th><th>fcstValue</th></tr>');
parsedData.forEach(item => {
res.write(`<tr><td>${item.category}</td><td>${item.fcstTime}</td><td>${item.fcstValue}</td></tr>`);
});
res.write('</table></body></html>');
res.end();
})
.catch(error => {
console.error(`Error: ${error}`);
});
} else {
res.writeHead(404, { 'Content-Type': 'text/html' });
res.write('<html><head><title>404 Not Found</title></head><body><h1>404 Not Found</h1></body></html>');
res.end();
}
});
server.listen(3000, () => {
console.log('Server is running on http://localhost:3000');
});
이 코드를 실행한 후, 웹 브라우저에서 `http://localhost:3000`에 접속하면 날씨 정보가 표시된 웹 페이지를 확인할 수 있습니다.
5. 결론
본 글에서는 NodeJS를 활용하여 Open API를 읽어오는 방법에 대해 자세히 알아보았습니다. 공공 데이터 포털에서 제공하는 날씨 정보 Open API를 사용한 예제를 통해 실제로 데이터를 조회하고 가공하여 웹 사이트에 표시하는 과정을 살펴보았습니다.
이를 통해 개발자들은 다양한 Open API를 활용하여 자신만의 서비스를 만들거나 기존 서비스를 개선할 수 있습니다. 특히, 공공 데이터 포털과 같은 공공 기관에서 제공하는 데이터를 활용하면 사회 문제 해결에 기여할 수 있는 서비스를 개발할 수 있습니다.
앞으로도 NodeJS와 Open API를 활용한 다양한 서비스 개발에 도전해보시기 바랍니다.