gpt4 book ai didi

swift - 使用 Alamofire 创建一个标准的 API Router

转载 作者:行者123 更新时间:2023-11-28 05:27:59 26 4
gpt4 key购买 nike

按照 Alamofire 文档,创建和使用路由器进行 CRUD 和授权的方法是

    enum Router: URLRequestConvertible {
static let baseURLString = "http://example.com"
static var OAuthToken: String?

case CreateUser([String: AnyObject])
case ReadUser(String)
case UpdateUser(String, [String: AnyObject])
case DestroyUser(String)

var method: Alamofire.Method {
switch self {
case .CreateUser:
return .POST
case .ReadUser:
return .GET
case .UpdateUser:
return .PUT
case .DestroyUser:
return .DELETE
}
}

var path: String {
switch self {
case .CreateUser:
return "/users"
case .ReadUser(let username):
return "/users/\(username)"
case .UpdateUser(let username, _):
return "/users/\(username)"
case .DestroyUser(let username):
return "/users/\(username)"
}
}

// MARK: URLRequestConvertible

var URLRequest: NSURLRequest {
let URL = NSURL(string: Router.baseURLString)!
let mutableURLRequest = NSMutableURLRequest(URL: URL.URLByAppendingPathComponent(path))
mutableURLRequest.HTTPMethod = method.rawValue

if let token = Router.OAuthToken {
mutableURLRequest.setValue("Bearer \(token)", forHTTPHeaderField: "Authorization")
}

switch self {
case .CreateUser(let parameters):
return Alamofire.ParameterEncoding.JSON.encode(mutableURLRequest, parameters: parameters).0
case .UpdateUser(_, let parameters):
return Alamofire.ParameterEncoding.URL.encode(mutableURLRequest, parameters: parameters).0
default:
return mutableURLRequest
}
}
}

Alamofire.request(Router.ReadUser("mattt")) // GET /users/mattt

但是这个 Router 只适用于用户模型,我想知道是否有任何方法可以将这个 Router 用于多个模型。

最佳答案

看这里: Proper usage of the Alamofire's URLRequestConvertible

他们也在尝试做同样的事情,但他们认为把它做大可能会很难处理

关于swift - 使用 Alamofire 创建一个标准的 API Router,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30199721/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com