일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- c언어
- 자료구조
- Stack
- OSI
- 미로 탐색 알고리즘
- 파이썬
- 파일 시스템
- web
- 시간복잡도
- 재귀
- LoB
- 두근두근 자료구조
- ftz
- C
- 정렬 알고리즘
- ftz level13
- windosw 문자열
- System
- windosws wbcs
- War Game
- PHP
- Java
- 큐
- 암호수학
- 스택
- pwnable.kr
- level13
- HTML
- 백준
- SWiFT
Archives
- Today
- Total
나의 기록, 현진록
[iOS/Swift] Apple itunes search API 활용하기 본문
반응형
클론 코딩 시에 자주 활용할 것 같아서 작성하는 글....
인스타나 넷플릭스, 뮤직 플레이어 앱과 같이 실제 존재하는 영화, 노래 등의 데이터를 활용할 때 좋은 것 같다.
위 사이트에 들어가서 iTunes Search API - Search - Construct a Search에 아이툰즈를 어떻게 사용하는지 정리되어 있다.
아래와 같이 정리된 표를 볼 수 있으며 API를 활용할 때 필수적으로 필요한 파라미터나 입력할 수 있는 값등이 작성되어 있다.
Search 카테고리에 있는 ~ Example을 뒤져보면 어떤 형식으로 response 데이터가 이루어져 있는지도 확인할 수 있다.
아래 사진은 그 중 하나이다.
아래 코드는 넷플릭스 클론 코딩을 할 때 실제 작성했던 코드이며, 상단에 있는 itunes API 파라미터를 활용한 코드가 예시이다.
static func search(term: String, completion: @escaping ([Movie]) -> Void){
let session = URLSession(configuration: .default)
var urlComponents = URLComponents(string: "https://itunes.apple.com/search?")!
let mediaQuery = URLQueryItem(name: "media", value: "movie")
let entityQuery = URLQueryItem(name: "entity", value: "movie")
let termQuery = URLQueryItem(name: "term", value: term)
urlComponents.queryItems?.append(mediaQuery)
urlComponents.queryItems?.append(entityQuery)
urlComponents.queryItems?.append(termQuery)
let requestUrl = urlComponents.url!
let dataTask = session.dataTask(with: requestUrl) { data, response, error in
guard error == nil else{
print("Error occur: \(String(describing: error))")
return
}
guard let statusCode = (response as? HTTPURLResponse)?.statusCode, statusCode == 200 else{
completion([])
return
}
guard let resultData = data else{
completion([])
return
}
do{
let decodeData = try JSONDecoder().decode(MovieResponse.self, from: resultData)
completion(decodeData.results)
}catch let error{
print("Decoder Error : \(error.localizedDescription)")
}
// let string = String(data: resultData, encoding: .utf8)
// print(string)
}
dataTask.resume()
}
반응형
'iOS' 카테고리의 다른 글
[Swift/iOS] AVPlayer에 Observer 추가하여 재생시간 탐지하기, UISlider을 이용하여 AVPlayer 영상 시점 이동하기, Control View 숨기기/보이기 (0) | 2022.07.19 |
---|---|
[iOS/Swift] iOS에서 URL로 이미지에 넣어보기 (0) | 2022.07.02 |
[Swift/iOS] searchBar cancel button custom (change title) (0) | 2022.06.28 |
[Swift/iOS] 하단 탭 바 숨기기 tabbar (0) | 2022.06.21 |
[Swift/iOS] URL 스키마 접근하기 / 다른 앱 열기 (0) | 2022.06.21 |