Alamofire - Advanced Usage


충전했’오' 프로젝트에서 Access Token 뿐만이 아닌 Refresh Token을 도입하여 Authorization을 진행 및 Time-Out에 대한 처리에 대해 Research를 진행하던 도중 Alamofire에서 제공하는 RequestInterceptor, Retrier 를 이용하기 위해 이 게시물을 작성합니다

(Alamofire - Advanced Usage 를 기반으로 작성하였음)

Session


RequestInterceptor, Retrier 를 살펴보기 전 Session이라는 개념을 먼저 살펴 볼 필요가 있습니다. 보통 Alamofire에서 request를 생성할 때 아래와 같은 코드를 많이 작성합니다

AF.request("<https://httpbin.org/get>")

AF는 Session의 Singleton instance인 default의 top-level name space로 위 코드는 아래의 코드와 같은 의미를 나타냅니다.

let session = Session.default
session.request("<https://httpbin.org/get>")

그렇다면 Session을 사용하는 경우는 언제일까요?!

let configuration = URLSessionConfiguration.af.default
configuration.allowsCellularAccess = false

let session = Session(configuration: configuration)