2019.08.28
// API(Application Programming Interface, 응용 프로그램 프로그래밍 인터페이스)
-응용 프로그램에서 사용할 수 있도록, 운영 체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 인터페이스
기상청 날씨 가져오기
http://www.weather.go.kr/weather/lifenindustry/sevice_rss.jsp
// RSS(Really Simple Syndication, Rich Site Summary)
- 컨텐츠 업데이트가 자주 일어나는 웹사이트에서, 업데이트된 정보를 쉽게 구독자들에게 제공하기 위해 XML을 기초로 만들어진 데이터 형식
- RSS서비스를 이용하면 업데이트된 정보를 찾기 위해 홈페이지에 일일이 방문하지 않아도 업데이트 될 때마다 빠르고 편리하게 확인할 수 있다
화면단
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
<!DOCTYPE html>
<html>
<head>
<meta charset="EUC-KR">
<title>Insert title here</title>
<script type="text/javascript">
$(function() {
$('#apiCall').change(function() {
var stnId = $(this).val();
var request = $.ajax({
url: "/apiCallProcess",
method: "POST",
data: { stnId : stnId },
dataType: "json"
});
request.done(function( data ) {
console.log(data);
});
request.fail(function( jqXHR, textStatus ) {
alert( "Request failed: " + textStatus );
});
});
});
</script>
</head>
<body>
<select id="apiCall">
<option value="108"> :: 전국:: </option>
<option value="109"> 서울/경기 </option>
<option value="146"> 전라북도 </option>
<option value="184"> 제주도 </option>
</select>
</body>
</html>
|
Controller
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
|
package kr.or.ksmart.apiTest;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
import org.springframework.stereotype.Controller;
@Controller
public class ApiCallController {
// Jsoup connect url (기상청)
@RequestMapping("/apiCall")
public String apiCall() {
return "/apiCall.html";
}
// 서버에서 응답을 줄때 컨텐츠 타입이 application/json
@RequestMapping(value = "/apiCallProcess", produces = "application/json")
public @ResponseBody List<Map<String, Object>> apiCallProcess(@RequestParam(value = "stnId"
, defaultValue = "108", required = false) String stnId) {
// System.out.println(stnId + " <-- stnId apiCall ApiCallController.java");
List<Map<String, Object>> apiList = new ArrayList<Map<String, Object>>();
/*
Jsoup : Java HTML Parser
Document doc = Jsoup.connect("http://en.wikipedia.org/").get();
*/
try {
Document doc = Jsoup
.connect(apiUrl)
.data("stnId", stnId)
.get();
// location 하위 태그들
Map<String, Object> locationMap = new HashMap<String, Object>();
// Element, Elements 패턴 보고 파악하여 사용할 것
Element location = locations.get(i);
// location 하위 data 태그
// location 하위 city 태그
locationMap.put("city", city);
List<Map<String, Object>> dataList = new ArrayList<Map<String,Object>>();
Map<String, Object> dataMap = new HashMap<String, Object>();
Element data = datas.get(d);
// data 하위 날짜 tmEf 태그
// data 하위 날씨 wf 태그
dataMap.put("time", time);
dataMap.put("content", content);
dataList.add(dataMap);
}
locationMap.put("dataList", dataList);
apiList.add(locationMap);
}
} catch (IOException e) {
e.printStackTrace();
}
return apiList;
}
}
|
'교육 > Java Script' 카테고리의 다른 글
#94 jQuery 페이지 전환 후 정적 select 값 고정 (0) | 2019.09.27 |
---|---|
#90 Java Script chart.js로 차트 그리기 (0) | 2019.09.23 |
#70 Java Script ajax 기본 사용 (0) | 2019.08.21 |
#67 Java Script jQuery 기본적인 API 예제 (0) | 2019.08.16 |
#45 Java Script <script type="text/javascript"> 와 <script> 차이 (0) | 2019.07.31 |