본문 바로가기
개발관련/flutter

[flutter] 플러터 API를 이용해 날씨정보 가져오기

by BlueOcean&Shark 2022. 7. 13.

플러터에서 무료 날씨 API를 이용해 날씨정보 가져오는 방법을 알아보겠습니다.

 

 

1. 인터넷 권한 얻기

먼저 인터넷 권한을 얻어와야 합니다. 아래 AndroidManifest.xml파일에

<uses-permission android:name="android.permission.INTERNET" />

입력하여 인터넷 권한 여부를 묻습니다.

플러터인터넷권한코딩위치
플러터인터넷권한코딩

 

2. http설치

pubspec.yaml파일에 http: ^0.13.4를 입력하여 http를 설치합니다.

플러터http설치

 

3. import

http.dart파일을 import 합니다.

import 'package:http/http.dart' as http; 

플러터http_import

 

4. api를 이용해 json으로 날씨정보 가져오기

아래 코드를 이용해 날씨정보를 가져올 수 있습니다. 아래 url변수는 날씨정보 api를 제공하는 url을 입력하시면 됩니다.

http.Response response = await http.get(Uri.parse(url));

json정보가져오기

저는 https://api.openweathermap.org/ 의 API를 이용했으며 url은

'https://api.openweathermap.org/data/2.5/weather?lat=${latitude}&lon=${longitude}&appid=$apikey&units=metric'

에서 latitude와 longitude (위도와 경도) 정보를 가져왔습니다.
apikey는 https://api.openweathermap.org/ 홈페이지 가입을 하여 My API keys에 들어가면 apikey를 얻을 수 있습니다.

무료날씨api제공홈페이지

 

5. jsonDecode를 이용해 원하는 데이터를 얻어오기

위를 통해 얻어온 response에는 여러 정보가 담겨있습니다. 그중 우리가 원하는 json정보는 response.body에 담겨있고 이를 파싱 하여 필요한 정보만 가져올 수 있습니다. 이를 위해서 jsonDecode함수를 이용하여 Json형태로 값을 가져올 수 있습니다.

jsondecode설명

 

 

댓글