URLSession
iOS을 개발하면서 데이터를 공유받는 방법 중 REST API를 주로 사용한다.
URLSession은 REST API를 사용하기 위한 Swift 기술 중 하나이다.
동작 순서는
URLSessionConfiguration 결정 -> URLSession 객체 생성 -> 사용할 Task 결정 -> 필요한 Response 메서드 작성 -> Task 실행 -> Task 완료 -> Response 메서드 실행
URLSessionConfiguration 결정
URLSessionConfiguration은 URLSession 객체를 생성하기 위한 클래스이다.
공식문서에서는 URLsession의 동작과 정책을 정의하는 설정 객체라고 정의돼어져 있다. [공식문서]
URLSessionConfiguration 오브젝트(객체) 생성
class var default: URLSessionConfiguration
:. default라 쓰며 기본통신할 때 사용한다.
class var ephemeral: URLSessionConfiguration
:. ephemeral 쿠키나 캐시를 저장하지 않는 정책을 사용할 때 사용한다.
class var background(withIdentifier: String) -> URLSessionConfiguration
:. background 앱이 백그라운드 상태에 있을 때 콘텐츠를 다운로드/ 업로드
URL 기본 구성
let urlString = "https://www.example.com/apimain/users?titleid=apple&machine=ipone"
let url = URL(string: urlString)
print(url?.absoluteURL) // 전체주소
print(url?.scheme) // protocol
print(url?.host) // host(baseURL)
print(url?.path) // path
print(url?.query) //query parameter
print(url?.baseURL)// 설정하지 않을경우 difault는 nil
/*
Optional(https://www.example.com/apimain/users?titleid=apple&machine=ipone)
Optional("https")
Optional("www.example.com")
Optional("/apimain/users")
Optional("titleid=apple&machine=ipone")
nil
*/
let baseURL = URL(string: "https://www.example.com")
let relativeURL = URL(string: "/apimain/users?titleid=apple&machine=ipone", relativeTo: baseURL)
print(relativeURL?.absoluteURL)
print(relativeURL?.scheme)
print(relativeURL?.host)
print(relativeURL?.path)
print(relativeURL?.query)
print(relativeURL?.baseURL)
/*
Optional(https://www.example.com/apimain/users?titleid=apple&machine=ipone)
Optional("https")
Optional("www.example.com")
Optional("/apimain/users")
Optional("titleid=apple&machine=ipone")
Optional(https://www.example.com)
*/
'iOS > Swift' 카테고리의 다른 글
[swift]커스텀 프리뷰사용방법 (0) | 2023.04.16 |
---|---|
[Swift Network] URLSession - 사전지식 (0) | 2023.04.12 |
[Swift] Closure - 축약 (0) | 2023.03.23 |
[Swift] Closure - escaping (0) | 2023.03.23 |
[Swift] Closure - Capturing (0) | 2023.03.23 |