Showing
6 changed files
with
112 additions
and
10 deletions
APIhandler.js
0 → 100644
| 1 | +let request = require('request'); | ||
| 2 | +let options = { | ||
| 3 | + 'method': 'GET', | ||
| 4 | + 'url': 'http://api.visitkorea.or.kr/openapi/service/rest/KorService/areaBasedList?ServiceKey=2lFkvQJYgzOOhwUKiUt8aZVNpd1PpBOf%2FfMNW17cl25DE0GUEDddeR9iGnuSUpggjUoIUgamfhcvnKQ3eH1dAw%3D%3D&contentTypeId=15&areaCode=&sigunguCode=&cat1=&cat2=&cat3=&listYN=Y&MobileOS=ETC&MobileApp=TourAPI3.0_Guide&arrange=A&numOfRows=12&pageNo=1&_type=json', | ||
| 5 | + 'headers': { | ||
| 6 | + } | ||
| 7 | +}; | ||
| 8 | +request(options, function (error, response, body) { | ||
| 9 | + if (error) { | ||
| 10 | + throw new Error(error); | ||
| 11 | + } | ||
| 12 | + let info = JSON.parse(body); | ||
| 13 | + | ||
| 14 | + for (i in info['response']['body']['items']['item']) { | ||
| 15 | + console.log('축제 : ' + info['response']['body']['items']['item'][i]['title']); | ||
| 16 | + console.log('축제 주소 : ' + info['response']['body']['items']['item'][i]['addr1']); | ||
| 17 | + console.log( | ||
| 18 | + '전화번호 : ' + info['response']['body']['items']['item'][i]['tel'] | ||
| 19 | + ); | ||
| 20 | + console.log('축제위도 : ' + info['response']['body']['items']['item'][i]['mapx']); | ||
| 21 | + console.log('축제경도 : ' + info['response']['body']['items']['item'][i]['mapy']); | ||
| 22 | + console.log(" ") | ||
| 23 | + } | ||
| 24 | +}); | ||
| 25 | + | ||
| ... | \ No newline at end of file | ... | \ No newline at end of file |
models/Festival.js
0 → 100644
| 1 | +const mongoose =require('mongoose'); | ||
| 2 | +const { Schema } =mongoose; | ||
| 3 | + | ||
| 4 | +const festivalSchema = new Schema({ | ||
| 5 | + title: String, | ||
| 6 | + addr: String, | ||
| 7 | + tel: String, | ||
| 8 | + mapx : Number, | ||
| 9 | + mapy : Number | ||
| 10 | +}, | ||
| 11 | +{ | ||
| 12 | + timestamps: true | ||
| 13 | +} | ||
| 14 | +); | ||
| 15 | + | ||
| 16 | + | ||
| 17 | +module.exports = mongoose.model('Festival',festivalSchema); |
package-lock.json
0 → 100644
This diff is collapsed. Click to expand it.
| 1 | { | 1 | { |
| 2 | - "name": "tft", | 2 | + "name": "REST-API", |
| 3 | - "version": "0.0.0", | 3 | + "version": "1.0.0", |
| 4 | - "private": true, | 4 | + "description": "", |
| 5 | + "main": "index.js", | ||
| 5 | "scripts": { | 6 | "scripts": { |
| 6 | - "start": "node ./bin/www" | 7 | + "test": "echo \"Error: no test specified\" && exit 1" |
| 7 | }, | 8 | }, |
| 9 | + "keywords": [], | ||
| 10 | + "author": "", | ||
| 11 | + "license": "ISC", | ||
| 8 | "dependencies": { | 12 | "dependencies": { |
| 9 | - "cookie-parser": "~1.4.4", | 13 | + "dotenv": "^10.0.0", |
| 10 | - "debug": "~2.6.9", | 14 | + "express": "^4.17.1", |
| 11 | - "ejs": "~2.6.1", | 15 | + "mongoose": "^6.0.13", |
| 12 | - "express": "~4.16.1", | 16 | + "request": "^2.88.2" |
| 13 | - "http-errors": "~1.6.3", | ||
| 14 | - "morgan": "~1.9.1" | ||
| 15 | } | 17 | } |
| 16 | } | 18 | } | ... | ... |
server.js
0 → 100644
| 1 | +const express = require('express'); | ||
| 2 | +const mongoose =require('mongoose'); | ||
| 3 | +const server = express(); | ||
| 4 | +const Festival =require('./models/Festival'); | ||
| 5 | +require("dotenv").config({ path: "variables.env"}); | ||
| 6 | + | ||
| 7 | +let request = require('request'); | ||
| 8 | +let options = { | ||
| 9 | + 'method': 'GET', | ||
| 10 | + 'url': 'http://api.visitkorea.or.kr/openapi/service/rest/KorService/areaBasedList?ServiceKey=2lFkvQJYgzOOhwUKiUt8aZVNpd1PpBOf%2FfMNW17cl25DE0GUEDddeR9iGnuSUpggjUoIUgamfhcvnKQ3eH1dAw%3D%3D&contentTypeId=15&areaCode=&sigunguCode=&cat1=&cat2=&cat3=&listYN=Y&MobileOS=ETC&MobileApp=TourAPI3.0_Guide&arrange=A&numOfRows=12&pageNo=1&_type=json', | ||
| 11 | + 'headers': { | ||
| 12 | + } | ||
| 13 | +}; | ||
| 14 | +request(options, function (error, response, body) { | ||
| 15 | + if (error) { | ||
| 16 | + throw new Error(error); | ||
| 17 | + } | ||
| 18 | + let info = JSON.parse(body); | ||
| 19 | + | ||
| 20 | + | ||
| 21 | + | ||
| 22 | + server.get('/',(req,res)=>{ | ||
| 23 | + const newFestival =new Festival(); | ||
| 24 | + newFestival.title =info['response']['body']['items']['item'][11]['title']; | ||
| 25 | + newFestival.addr =info['response']['body']['items']['item'][11]['addr1']; | ||
| 26 | + newFestival.tel = info['response']['body']['items']['item'][11]['tel']; | ||
| 27 | + newFestival.mapx = info['response']['body']['items']['item'][11]['mapx']; | ||
| 28 | + newFestival.mapy =info['response']['body']['items']['item'][11]['mapy']; | ||
| 29 | + newFestival.save().then((festival)=> | ||
| 30 | + { | ||
| 31 | + console.log(festival); | ||
| 32 | + res.json({ | ||
| 33 | + message:'Festival Created Successfully' | ||
| 34 | + }); | ||
| 35 | + }) | ||
| 36 | + .catch((err)=> | ||
| 37 | + { | ||
| 38 | + res.json({ | ||
| 39 | + message:'Festival was not successfully created' | ||
| 40 | + }); | ||
| 41 | + }); | ||
| 42 | + }); | ||
| 43 | +}); | ||
| 44 | + | ||
| 45 | +server.listen(3000,(err)=>{ | ||
| 46 | + if(err){ | ||
| 47 | + return console.log(err); | ||
| 48 | + }else{ | ||
| 49 | + mongoose.connect(process.env.MONGODB_URL,{useNewUrlParser:true},(err)=>{ | ||
| 50 | + if(err){ | ||
| 51 | + console.log(err); | ||
| 52 | + }else{ | ||
| 53 | + console.log("Connected to database successfully"); | ||
| 54 | + } | ||
| 55 | + }); | ||
| 56 | + } | ||
| 57 | +}) |
variables.env
0 → 100644
| 1 | +MONGODB_URL = mongodb+srv://hellowhales:qogudtjr`12@cluster0.7gz7l.mongodb.net/myFirstDatabase?retryWrites=true&w=majority | ||
| ... | \ No newline at end of file | ... | \ No newline at end of file |
-
Please register or login to post a comment