티스토리 뷰
대기오염 정보 공공api를 alamofire를 사용하여 가져와보겠습니다.
사용하시기전에 podfile에 pod 'Alamofire' 를 추가하셔야 합니다.
Alamofire는 비동기로 데이터를 가져옵니다. 외부에서 데이터를 가져오는 작업은 비동기로 이루어집니다.
get, post, download, delete, patch등이 있지만 이번에 가져올 데이터에서는 get을 사용해야 합니다.
먼저 AirModel이라는 model class를 만들어줍니다.
airmodel의 코드입니다.
alamofire를 사용하면 데이터를 비동기로 가져오기에 이를 옮기기 위해선 protocal을 사용해야 합니다.
그리하여 AirModelStateDelegate를 생성하였습니다.
먼저 import Alamofire를 작성합니다.
AF.request()는 기존의 request에 하나씩 설정하던 번거로움을 한번에 설정하도록 도와줍니다.
인자값은 baseURL(인자값), method: .get (get방식), parameters(서울대기정보, json데이터 요청)하였습니다.
statusCode가 200번대면 정상적인 통신이라 합니다.
그렇게 가져온 json데이터를 JSONDecoder를 사용하여 파싱합니다. (JSONDecoder만세!)
가공된 데이터들은 방금 선언한 AirModelStateDelegate를 통해 ViewController로 옮겨줍니다.
delegate를 연결시킨 후 AirModel에 데이터를 요청합니다.
가져온 데이터를 이용하여 UI를 변경합니다.
RxSwift와 URLSession만 사용하여 네트워킹을 하다 처음으로 Alamofire를 사용해보았습니다.
Alamofire를 사용하며 RestAPI관련 글들을 읽고 공부하게 되어 유익하였습니다.
단순 서버에서 데이터를 가져오는 작업이 아닌 post(값을 입력)하거나 put(수정), delete(삭제)를 하기 위해서는 꼭 알아야 할 라이브러리라 생각합니다.
전체코드입니다.
github.com/rising-jun/AlamofirePractice
감사합니다!
'iOS > 스위프트' 카테고리의 다른 글
[Swift][GCD]여러 쓰레드가 하나의 자원을 동시에 사용하려하면? (0) | 2022.04.03 |
---|---|
[Swift][RxAlamofire] RxAlamofire 맛보기 (0) | 2021.05.12 |
[Swift][UI] 로그인화면 만들기! part.2 (0) | 2021.04.09 |
[Swift][UI] 로그인화면 만들기! part.1 (0) | 2021.04.09 |
[Swift] [Framework] 나만의 Framework 만들기! (0) | 2021.04.05 |