- spring ๊ตฌ๊ธ ์์ ๋ก๊ทธ์ธ
- MethodArgumentNotValidException
- SSL
- ์์คํ ์ํํธ์จ์ด
- DATABASE
- OpenAPI
- Java
- spring์ผ๋ก https ์ ์ฉ
- SQL
- ํจ์คํธ์บ ํผ์คX์ผ๋์
- docker
- GIT
- ๋ฆฌ๋ ์ค ๋ช ๋ น์ด
- ๊ตฌ๊ธ ์์ ๋ก๊ทธ์ธ
- Spring
- node js
- @CreatedDate
- spring ์์ ๋ก๊ทธ์ธ
- Unity
- MAKE US
- RP 2๊ธฐ
- mysql
- Rp2๊ธฐ
- Quick Sort
- merge sort
- C++
- Data Structure
- java error
- aligoapi
- datagrip
YS's develop story
Node Js, OpenAPI๋ฅผ ํ์ฉํ์ฌ ๋ฐ์ดํฐ๋ฅผ DB์ ์ ์ฅํ๊ธฐ (Request.js) ๋ณธ๋ฌธ
Node Js, OpenAPI๋ฅผ ํ์ฉํ์ฌ ๋ฐ์ดํฐ๋ฅผ DB์ ์ ์ฅํ๊ธฐ (Request.js)
Yusang 2021. 6. 25. 11:06๐จ๐ป OpenAPI๋ฅผ ํ์ฉํ์ฌ ๋ฐ์ดํฐ๋ฅผ DB์ ์ ์ฅํ๊ธฐ (Request.js)
โ Problem
์ ์ฌ์ดํธ์ ๋ฑ๋ก๋ ๋ค์ํ ๊ณต๊ณต๋ฐ์ดํฐ๋ค์ OpenAPI๋ฅผ ํตํด ํ์ฉํ ์ ์์ต๋๋ค.
์ ๋ ๊ณต๊ณต๋ฐ์ดํฐ ํฌํธ์ ๋ฑ๋ก๋ ์์ธ์์ ๋ชจ๋ ๋ณ์ ์ ๋ณด๊ฐ ํ์ํ๊ณ
์ด๋ฅผ ํ์ฉํ๊ธฐ ์ํด ์ฌ์ดํธ์์ ๋ณ์์ ๋ณด OpenAPI key๋ฅผ ๋ฐ๊ธ๋ฐ์์ต๋๋ค.
๋ฐ๊ธ๋ฐ์ Service key๋ฅผ ํตํด Postman๊ณผ ๋ธ๋ผ์ฐ์ ๋ก ๊ฐ๊ฐ ์์ฒญํ ๊ฒฐ๊ณผ์ ๋๋ค.
์ด๋ ๊ฒ ๋ด๊ฐ ์ํ๋ ์๋ฐฑ ๊ฐ์ ๋ณ์์ ๋ณด๋ฅผ ํ๋์ ํ์ธํ ์ ์์ต๋๋ค.
๊ทธ๋ ๋ค๋ฉด ์ด๋ ๊ฒ ๋ง์ ๋ณ์ ์ ๋ณด๋ค์ ๋์ DB์ ์ ์ฅํ๋ ค๋ฉด ์ด๋ป๊ฒ ํด์ผ ํ ๊น์?
์ด๋ฅผ ์ผ์ผ์ด DB์ ์ ๋ ฅํ๋ ๊ฑด ๋ง๋ ์ ๋๋ค๊ณ ์๊ฐ๋๋๋ฐ์
์ ๋ ์ด๋ฅผ Node Js์์ request๋ชจ๋์ ํ์ฉํ์ฌ DB์ ํ ๋ฒ์ ์ ์ฅํด ๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค.
๐ Solution
Postman์์ ๋ด๊ฐ ๋ฐ๊ธ๋ฐ์ ServiceKey๋ฅผ ํตํด OpenAPI๋ฅผ ์์ฒญํด ์ค์๋ค.
OpenAPI๋ฅผ ํธ์ถํ๊ณ ์ค๋ฅธ์ชฝ ์๋จ์ ์์ ์ฌ์ง๊ณผ ๊ฐ์ ๋ฒํผ์ ํด๋ฆญํด ์ค๋๋ค.
์ ์ฝ๋๋ฅผ ๋ณต์ฌํ์ฌ ๋ด ํ๋ก์ ํธ์ ๋ถ์ฌ ๋ฃ๊ธฐ ํด ์ค์๋ค.
npm i request
request ๋ชจ๋์ ์ค์นํด ์ค๋๋ค.
const numOfRows = 10;
const ServiceKey = '';
const hospitalCategory = 80;
//14ํผ๋ถ๊ณผ 61์น๊ณผ 08์ฑํ์ธ๊ณผ 12์๊ณผ 01๋ด๊ณผ 05์ ํ์ธ๊ณผ 80ํ๋ฐฉ
let request = require('request');
let options = {
'method': 'GET',
'url': 'http://apis.data.go.kr/B551182/hospInfoService1/getHospBasisList1?numOfRows=' +
numOfRows + '&_type=json&sidoCd=110000&clCd=21&ServiceKey=' +
ServiceKey + '&dgsbjtCd=' + hospitalCategory,
'headers': {
'Cookie': 'WMONID=sN2sN5XVW3y'
}
};
request(options, function (error, response, body) {
if (error) {
throw new Error(error);
}
let info = JSON.parse(body);
for (i in info['response']['body']['items']['item']) {
console.log('๋ณ์์ด๋ฆ : ' + info['response']['body']['items']['item'][i]['yadmNm']);
console.log('๋ณ์์ฃผ์ : ' + info['response']['body']['items']['item'][i]['addr']);
console.log(
'๋ณ์์ ํ๋ฒํธ : ' + info['response']['body']['items']['item'][i]['telno']
);
console.log('๋ณ์์๋ : ' + info['response']['body']['items']['item'][i]['YPos']);
console.log('๋ณ์๊ฒฝ๋ : ' + info['response']['body']['items']['item'][i]['XPos']);
console.log(" ")
}
});
์ ๊ฐ DB์ ์ ์ฅํ ์ ๋ณด๋ ๋ณ์ ์ด๋ฆ, ๋ณ์ ์์น(์๋, ๊ฒฝ๋), ๋ณ์ ์ฃผ์, ๋ณ์ ์ ํ๋ฒํธ
์ด๋ ๊ฒ 5๊ฐ์ด๊ธฐ ๋๋ฌธ์ ์์ ๊ฐ์ด ์ฝ๋๋ฅผ ์์ฑํ์ต๋๋ค.
์ด๋ ์คํ ๊ฒฐ๊ณผ์
๋๋ค.
console.log๋ก ์์ฑํ ์ฝ๋๋ค์ ๋ชจ๋ ๋ณ์์ ํ ๋น์ ์ฃผ์ด์ ๋ถ๋ฌ์จ ๋ณ์์ ์ ๋ณด๋งํผ
for๋ฌธ์ ํ์ฉํ์ฌ Insert ์ฟผ๋ฆฌ๋ฌธ์ผ๋ก DB์ ๋ฃ์ด์ฃผ๋ฉด ๋ ๊ฒ ๊ฐ์ต๋๋ค!
'๊ธฐํ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
NodeJS Node-Schedule๋ก ํน์ ์๊ฐ์ ์คํ ํ ์์ ์์ฝํ๊ธฐ ๐ค (0) | 2021.07.20 |
---|---|
IntelliJ ์ฝ๋ ์๋ ์ ๋ ฌ ๊ด๋ จ ๐ (0) | 2021.07.15 |
C# REST API ํธ์ถํ๊ธฐ (RestSharp ์ด์ฉ) (1) | 2021.03.25 |
Node js ์์ ๋ฉ์ผ ์ ์กํ๊ธฐ (Nodemailer ์ด์ฉ, Node ๋น๋ฐ๋ฒํธ ์ฐพ๊ธฐ) (0) | 2021.03.10 |
AWS RDS ์ฌ์ฉ์ ์ถ๊ฐํ๊ธฐ (0) | 2021.02.07 |