Request adapter for URL requests from “MovieLister” demo app (Swift for Good book, a chapter by Ben Scheirman)

The code is taken from:

Movie Lister


1. Implement the desired functionality inside the adapter protocol methods

struct UserAuthAdapter : RequestAdapter {
  func onResponse(response: URLResponse?, data: Data?) {
    if let urlResponse = response as? HTTPURLResponse {
      UserAuthData.saveToRepositoryFrom(urlResponse: urlResponse)

2. Add the adapters to your APIClient as a property

  private var adapters: [RequestAdapter]

3. Call the adapters form the implementation of the APIClient

  self.adapters.forEach { $0.beforeSend(dataRequest.request) }


  guard let data = else {
    let error = data.error ?? AFError.explicitlyCancelled
    self.adapters.forEach { $0.onError(request: dataRequest.request, error: error) }


View Github