YoutubeAPI를 사용하여 JSON 형식의 정보를 Xcode로 처리하는 방법

YoutubeAPI를 사용해 봅시다.



YoutubeAPI를 사용하여 Json 형식의 정보를 처리할 수 있도록 하려면 다음과 같이 하십시오.

1:YoutubeAPI를 사용하여 할 수 있도록 프로젝트를 만들고 API 키를 만드는 console.cloud.google.com
2 : Xcode에서 대상 JSON 형식에 해당하는 모델 만들기
3: API에 요청을 던지기
4:응답 정보를 model형의 오브젝트에 디코드

먼저 API 키를 만들려면 htps : //에서 ゔぇぺぺrs. 오, ぇ. 코 m / 요츠 베 / v3 / 껄껄 g-s r d? hl = 그럼
방문

작업을 시작하기 전에
라는 항목의 순서보다 Google 계정이 없으면 작성
htps : // 이런. cぉd. 오, ぇ. 코 m / 아피 s / c 레덴치아 ls? hl = 그럼 & p 로지 ct = 어서 p p 311106 & fl에서 r = & 오 r가 Nizachio d =
방문



내 화면이라면 햄버거 메뉴 오른쪽의 Googole Cloud Platform의 오른쪽 YoutubeApp 탭에서 만들 수 있습니다.
그 후
+ 자격 증명 만들기
라는 탭을 클릭하여 API 키를 게시합니다.
이 API 키는 YoutubeAPI에 요청을 던질 때 쿼리 매개 변수로 전달하는 값입니다.
말 그대로 키(인증)에 역할을 한다.
그럼 시도.
https://www.googleapis.com/youtube/v3/search?q=어떤 문자&key=받은 키&part=snippet

라는 URL에 액세스하면


JSON 파일이 응답으로 반환됩니다.
요점은 이것을 Xcode로 취급할 수 있도록 할 수 있으면 좋다.

이를 위해
alamofire라는 라이브러리를 사용합니다.
이 라이브러리는 http 통신용 라이브러리

cocoapod로 라이브러리를 프로젝트에 설치합니다.

테스트 코드



기본 스토리보드에 연결된 ViewController로 테스트 코드를 작성해 봅니다.
import UIkit
import Alamofire
class ViewController: UIViewController{

override func viewDidLoad() {
        super.viewDidLoad()
        //リクエスト URL
        let urlString = "https://www.googleapis.com/youtube/v3/search?q=検索したいワード&key=APIキー&part=snippet"

     //リクエストを作成
        let request = AF.request(urlString)

        //リクエストをyoutubeApiに投げてレスポンス情報を取得
        request.responseJSON{(response) in
            do{
                //Json情報を取得して対象のモデルオブジェクトへ変換
                guard let data = response.data else { return }
                let decode = JSONDecoder()
                let video = try decode.decode(Video.self, from: data)
                print("video:", video.items.count)
            } catch {
                print("変換に失敗しました\(error)")
            }      
            print("response", response)
        }
    }
}

모델은 이렇게
import Foundation

class Video: Decodable {    
    let kind: String
    let items: [Item]    
}

class Item: Decodable {    
    let snippet: Snippet   
}

class Snippet: Decodable {    
    let publishedAt: String
    let channelId: String
    let title: String
    let description: String
    let thumbnails: Thumbnail
}

class Thumbnail: Decodable {    
    let medium: ThumbnailInfo
    let high: ThumbnailInfo    
}

class ThumbnailInfo: Decodable {    
    let url: String
    let width: Int?
    let height: Int?    
}

Json 형식의 정보를 디코딩하려면 변수 이름을 일치시켜야하며 배열에 대해서는 위와 같이
클래스를 작성해 넣는 정보를 클래스로 취급할 수 있도록(듯이) 한다.
예를 들어 응답으로 반환 된 json 정보에는
Item이라는 배열이 있다. 이 배열에는 kind 나 id 등의 변수와 snippet 등의 배열이 있습니다.
이 배열안에 들어 있는 정보 하나의 형태(클래스)로 취급한다.

결과적으로 하나의 video 클래스의 인스턴스가 만들어지고,
그 안의 Item이라는 변수명의 배열에 json 정보의 Item 배열의 각 요소가 저장된다

덧붙여서, json 정보의 모든 요소를 ​​저장하는 변수를 준비하지 않아도 꺼내고 싶은 정보만 준비해 두면 된다.
반대로 json 정보에없는 정보를 저장하는 변수가 모델 객체에서 선언되면 오류가 발생합니다.

나중에 생성 된 객체의 정보를 사용하여 imageURL에서 이미지를 다운로드하거나 문자열을 label에 할당하거나 유사하거나 구울 수 있습니다.

좋은 웹페이지 즐겨찾기