Sfoglia il codice sorgente

Updated README to new URLStringConvertible and URLRequestConvertible APIs.

Christian Noon 9 anni fa
parent
commit
ac14454822
1 ha cambiato i file con 15 aggiunte e 17 eliminazioni
  1. 15 17
      README.md

+ 15 - 17
README.md

@@ -1020,7 +1020,7 @@ Applications interacting with web applications in a significant manner are encou
 extension User: URLStringConvertible {
     static let baseURLString = "https://example.com"
 
-    var urlString: String {
+    func asURLString() throws -> String {
         return User.baseURLString + "/users/\(username)/"
     }
 }
@@ -1066,7 +1066,7 @@ enum Router: URLRequestConvertible {
 
     // MARK: URLRequestConvertible
 
-    var urlRequest: URLRequest {
+    func asURLRequest() throws -> URLRequest {
         let result: (path: String, parameters: Parameters) = {
             switch self {
             case let .search(query, page) where page > 0:
@@ -1133,23 +1133,21 @@ enum Router: URLRequestConvertible {
 
     // MARK: URLRequestConvertible
 
-    var urlRequest: URLRequest {
-        let url = URL(string: Router.baseURLString)!
+    func asURLRequest() throws -> URLRequest {
+    	guard let url = URL(string: Router.baseURLString) else {
+    	    throw AFError.invalidURLString(urlString: Router.baseURLString)
+    	}
 
         var urlRequest = URLRequest(url: url.appendingPathComponent(path))
         urlRequest.httpMethod = method.rawValue
 
-        do {
-            switch self {
-            case .createUser(let parameters):
-                urlRequest = try URLEncoding.default.encode(urlRequest, with: parameters)
-            case .updateUser(_, let parameters):
-                urlRequest = try URLEncoding.default.encode(urlRequest, with: parameters)
-            default:
-                break
-            }
-        } catch {
-            // No-op
+        switch self {
+        case .createUser(let parameters):
+            urlRequest = try URLEncoding.default.encode(urlRequest, with: parameters)
+        case .updateUser(_, let parameters):
+            urlRequest = try URLEncoding.default.encode(urlRequest, with: parameters)
+        default:
+            break
         }
 
         return urlRequest
@@ -1179,7 +1177,7 @@ class AccessTokenAdapter: RequestAdapter {
 		self.accessToken = accessToken
 	}
 
-	func adapt(_ urlRequest: URLRequest) -> URLRequest {
+	func adapt(_ urlRequest: URLRequest) throws -> URLRequest {
 	    var urlRequest = urlRequest
 
 	    if urlRequest.urlString.hasPrefix("https://httpbin.org") {
@@ -1238,7 +1236,7 @@ class OAuth2Handler: RequestAdapter, RequestRetrier {
 
     // MARK: - RequestAdapter
 
-    func adapt(_ urlRequest: URLRequest) -> URLRequest {
+    func adapt(_ urlRequest: URLRequest) throws -> URLRequest {
         if let url = urlRequest.url, url.urlString.hasPrefix(baseURLString) {
             var urlRequest = urlRequest
             urlRequest.setValue("Bearer " + accessToken, forHTTPHeaderField: "Authorization")