웹 서버에서 제공하는 정보(데이터)를 가져오고 싶을 때가 있습니다. 예를 들면 구글이나 네이버 등 특정 기업에서 제공하는 API를 통해서 가져올 수 있는데요. 그 방법을 차근차근 하나씩 알아보겠습니다. (저도 공부하는 입장이라서요.^^)
먼저 스위프트의 기본적인 문법을 알고 있다는 가정하에 코드를 작성해보겠습니다. 모르시는 부분은 댓글 남겨주시면 제가 아는 지식 범위 안에서 답변을 드려보겠습니다.
1. NewsAPI 검색 -> 사이트 가입 후 -> 스크롤 맨 아래 News sources -> 대한민국 선택 -> 아래와 같은 json 형식의 데이터 확인
![]() |
2. 1 의 데이터를 가져오기 위한 코드 작성
// json 형태의 데이터로 정보를 제공하는 사이트 URL을 String 변수에 할당 var jsonDataURL: String = "http://newsapi.org/v2/top-headlines?country=kr&category=business&apiKey=자신만의 고유 값"
// URL에 접속하여 요청한 데이터, 응답 값, 에러정보 등을 받는다. let task = URLSession.shared.dataTask(with: URL(string: jsonDataURL)!) { (data, response, error) in if let JsonData = data { do { // URL 요청을 통해 받은 데이터를 json 형태로 되어 있지 않아 직렬화를 통해 변경해준다. json 데이터는 Dictionary<String, Any>의 구조를 가진다. if let json = try JSONSerialization.jsonObject(with: JsonData, options: []) as? Dictionary<String, Any> { // articles는 json 형식의 데이터를 배열 형태로 가지고 있다. if let articles = json["articles"] as? Array<Dictionary<String, Any>> { // 배열 변수가 가진 enumerated 함수의 기능은 순서(0,1,2...), 값(순서에 해당하는 값) -> (_, val) for (_, val) in articles.enumerated() { if let title = val["title"] as? String { print(title) } } } } } catch {} } } task.resume() |
위의 URL에서 자신만의 고유 값은 직접 사이트 가입하신 후 들어가시면 보이게 됩니다.
3. 실행 결과 확인
![]() |
위 내용은 센치한 개발자님의 유튜브 영상을 보고 공부하여 작성하였습니다.
'코딩의 유익함 > 스위프트(Swift)' 카테고리의 다른 글
Swift(스위프트) - Realm 설치 및 연동 예제 (1) | 2021.02.05 |
---|---|
Swift(스위프트) - 저장소 종류 (SQLite, Core Data, Realm) (0) | 2021.02.05 |
Swift(스위프트) - mac(맥) m1 에서 cocoapods 설치 및 적용하기 (3) | 2021.02.04 |
Swift(스위프트) - 엑셀파일(xlsx) 읽고 출력하기 (0) | 2021.01.27 |
Swift(스위프트) - SMTP를 이용하여 메일 보내기 (1) | 2021.01.23 |