- Today
- Total
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 오블완
- swiftUI
- SQL
- scheduledTimer
- 연산자
- ReLU
- Optional
- ios
- Python
- Request
- cocoapods
- 시각화
- HTTP
- sigmoid
- rxswift
- 티스토리챌린지
- tapply
- substr
- struct
- SWIFT
- deeplearning
- 명령어
- r
- Linux
- barplot
- Observable
- rest api
- MVC
- 딥러닝
- decode
iOS 개발 기록 블로그
iOS (Swift) OpenWeather API 사용하는 법 본문
API 란?
명령어, 함수, 프로토콜, 객체 등의 집합으로
많은 프로그래머들이 소프트웨어를 만들거나 외부 시스템과 상호작용하는 데에
사용할 수 있는 것이다.
많은 개발자들이 흔한 기능들을 동작하기 위한 표준 명령어를 제공하고
그들은 코드를 작성할 필요가 없다.
API의 유형
- 소프트웨어를 만들기 위해 사용되는 API
- 외부 시스템과 상호작용하기 위해 사용되는 API
소프트웨어를 만들기 위해 사용되는 API
우리는 iOS 앱을 만들 때 이미 많은 API를 사용하고 있다.
위 이미지처럼 오디오를 재생하기 위해 이미 애플 사에서 만들어 놓은
API를 그들이 제시해놓은 표준 명령어 흔히 사용하여 앱 제작을 한다.
외부 시스템과 상호작용하기 위해 사용되는 API
예를 들어 Tinder 앱을 보자.
앱 내에 있는 사람들의 데이터는 어디로부터 가져와서 보여주는 것일까?
예를 들어, Facebook 계정으로 로그인하면 페이스북 서버에 데이터를 요청을 한다.
이 경우에 개발자와 API Provider는 간단한 계약(Contract)를 한다.
OpenWeather API 사용하기
또다른 예시로 날씨 앱을 만든다고 생각해보자.
디바이스의 위도, 경도 정보를 바탕으로 지역(도시) 이름을
OpenWeather API에 요청하여 받아올 때 API를 사용한다.
개발자는 API Provider 사이트에 들어가서 회원가입하고
유니크한(중복되지 않은) API Key(Token이라고 부름)를 받는다.
위에 링크에 들어가서 회원가입을 해준다.
우상단에 본인 아이디에 들어가서 My API keys에 들어가면
본인의 API 키가 있을 것이다.
나는 이름을 Default에서 임의로 변경했다.
본인의 키를 복사해둔다.
사이트 메뉴에서 API에 들어가서 조금 아래로 내려보면 아래와 같이
보일 것이다. API doc 버튼을 눌러 문서를 열어본다.
문서에 들어가면 오른쪽에
Built-in API request by city name 을 누른다.
도시명으로 요청하는 문서를 보기 위함이다.
그러면 위 이미지처럼 요청 URL에 '?'를 붙이고 파라미터명인 'q'를 붙이고
=(도시명) 그 다음에 파라미터는 &를 붙이고 이어 나가는 형식이다.
appid={아까 복사해둔 API Key} 이렇게 넣으면 된다.
각자의 웹 브라우저에 들어가서 위 샘플 코드를 복사해서
아래처럼 들어가보자.
다음과 같은 에러가 나온다.
유효하지 않은 API key.
위 코드 내 해결 방법을 제시해준 링크에 들어가보면 아래처럼 해결 방법을 볼 수 있다.
아까 복사해둔 API Key를 appid= 파라미터에 잘 넣으면
아래와 같이 정상적으로 결과를 받아볼 수 있다.
참고
안젤라유 강의: https://www.udemy.com/course/ios-13-app-development-bootcamp/
'iOS' 카테고리의 다른 글
iOS (Swift) URL Session for Networking (0) | 2022.06.22 |
---|---|
iOS (Swift) OpenWeather API 모바일 앱에서 요청하기 (0) | 2022.06.21 |
iOS (Swift) Delegate Design Pattern & Protocol (0) | 2022.06.16 |
iOS (Swift) Protocol 이란? (0) | 2022.06.15 |
iOS (Swift) UITextField 다루기 (0) | 2022.06.14 |