[SwiftUI] URLSession을 이용한 간단한 JSON 통신 및 데이터 파싱

반응형

    스위프트 UI URLSession 통신

     

    보통 앱을 만들때 API 통신을 하려면 Alamofire를 많이 사용합니다. 오늘은 SwiftUI에서 Alamofire가 아닌 URLSession 객체를 통해 통신을 하고 값을 표출하는 테스트를 해보겠습니다. 우선 사용될 URL은 다음과 같습니다. 브라우저에 입력해보면 JSON 형태의 데이터로 된 것을 확인 할 수 있습니다.

     

    JSON 데이터 URL와 데이터 Struct 정의

    https://itunes.apple.com/search?term=taylor+swift&entity=song

     

    ▼ 우선 JSON 형태에 맞게 Codable를 상속 받은 데이터 Struct를 만들어줍니다. Response는 응답 받는 데이터 형태이며 Result 타입의 데이터를 배열형태로 가지게 됩니다.


     

     

     

     위에서 정의한 데이터를 ContentView에서 results란 이름에 @State 변수로 정의합니다.


     

     

     

    SwiftUI 정의

     List와 VStack으로 간단하게 데이터를 UI로 만들어주겠습니다. 그리고 List에 .task를 사용해서 loadData 함수를 호출합니다.


     

     

     

    데이터 호출

     loadData 함수를 정의합니다.

    1. guard let 구문을 통해서 url 문자열이 정상인지 확인합니다.
    2. async, await를 통해 비동기 통신을 합니다.
    3. 통신을 통해 data, meta 데이터를 가져오게 됩니다.
    4. data 를 JSONDecoder를 통해 파싱합니다.

     

     

     

     다음은 전체 코드입니다.


     

     

     

    반응형

    댓글

    Designed by JB FACTORY