본문 바로가기

Web Language/JSP

날씨 API 활용하기

▶ 기상청에서 공공데이터 받기

주소 → http://www.weather.go.kr/weather/lifenindustry/sevice_rss.jsp

 

 

RSS를 클릭하고 해당 uri로 이동해보면, 아래처럼 GET 방식으로, zone=지역코드로 이루어져 있다.

Crome으로 F12번의 개발자 도구를 킨다.  option의 value 값에 지역코드들이 들어가 있다.

 

▶ 날씨 API 활용해보기

1. pom.xml 파일에 jsoup dependency 를 추가한다.

jsoup은 HTML 문서에 저장된 데이터를 구문 분석, 추출 및 조작하도록 설계된 오픈 소스 Java 라이브러리 이다.

<!-- https://mvnrepository.com/artifact/org.jsoup/jsoup -->
<dependency>
    <groupId>org.jsoup</groupId>
    <artifactId>jsoup</artifactId>
    <version>1.12.1</version>
</dependency>

 

 

Jsoup 클래스의 static 메소드 connect에 uri 경로로 분석하고자 하는 html 문서를 넣어 호출한다.

 - .data(key, value) : 요청 데이터와 매개변수 설정

 - .get() : 호출 방식 설정

 

분석한 uri의 doc 에서 <category> 태그를 선택하여 그 태그의 내용(.text())을 변수에 담을 수 있다.

마찬가지로 태그 자체를 Elements 또는 Element 변수로 담아올수 있다.

Elements 타입의 경우 반복문을 풀어서 Element 타입으로 활용 가능하다.

 

위의 Element들을 객체에 담는다.

태그의 시간과 날씨정보는 kma 라는 DTO에,

카테고리와 위의 정보들은 kmaList라는 DTO에 담는다.

컨트롤러에서 "/api" 라는 경로로 매개변수 zone과 함께 메소드에 들어와 json 방식으로 위의 kamaListDto에 날씨 정보를 셋팅해서 반환해준다.

 

즉, Ajax로 이 컨트롤러와 통신하면 아래와 같다.

body 태그 안의 select 박스의 value가 바뀌면 바뀐 value의 값을 ajax로 컨트롤러에 보낸다. 

리턴받은 kamaList의 값을 화면에 출력한다.

 

apiEx20200616.zip
0.07MB

'Web Language > JSP' 카테고리의 다른 글

JSP 내에서 중복 실행 방지  (0) 2024.12.02
MVC 패턴 - model2  (0) 2020.05.13
forward 와 redirect  (0) 2020.04.13
JSP와 DB연결 - 로그인 기능(DB연결)  (0) 2020.04.01
JSP와 DB연결 - DELETE  (0) 2020.04.01