2017-07-16 51 views
0

我是iOS开发新手。我在Android开发方面有一点经验,并希望学习iOS开发。在Android中,我使用Retrofit库来访问API。访问API的Swift库

现在我想知道访问API的类库。我想讨论一下具有良好性能,易于使用和易于理解的API库。是的,当然,我已经试图找到它,我明白了:

https://medium.com/ios-os-x-development/restkit-tutorial-how-to-fetch-data-from-an-api-into-core-data-9326af750e10

但我需要更多的想法有关库访问API,谁能帮助我?

谢谢。

回答

1

你可以在ios中使用Alamofire

Alamofire.request("https://httpbin.org/get").responseJSON { response in 
    print(response.request) // original URL request 
    print(response.response) // HTTP URL response 
    print(response.data)  // server data 
    print(response.result) // result of response serialization 

    if let JSON = response.result.value { 
     print("JSON: \(JSON)") 
    } 
} 
+0

如果API使用令牌访问它呢? – Patrick

+0

使用HTTPHeaders –

+0

我已经试过这个库,但我不明白将这个库添加到我的项目。你能帮我解释一下如何将这个库添加到项目中吗? – Patrick

2

在iOS中,唯一支持联网的库是Aalmofire。它简化了所有的网络通话斗争。它提供了访问服务器数据的简单方法。 Alamofireswift。如果要以目标C创建项目,则可使用目标C中提供的相同库作为AFNetworking

下面是编写API调用的例子:

let url = "" 
let headers = [ "Content-Type" : "application/json"] 
let para : Parameters = [ "data" : JSONObject] 
Alamofire.request(url, method: .post, parameters: para, encoding: JSONEncoding.default, headers : headers) 
    .responseJSON { response in 

     print(response) 
     print(response.result) 

} 

注:当你是一个初学者我没有告诉URLSessions(由苹果公司提供的),这是写作的最佳方式API调用。但这是未来的一个很好的选择。

+0

如果您在标头中使用访问令牌。只需简单地在标题中添加一个并发送它。 –

1

即使Alamofire看起来像是一个很好的联网选择,本地URLSession以及Codable protocol提供了相同的功能,而无需添加任何依赖项目。

let task = URLSession.shared.dataTask(with: url) { data, response, error in 
    // Handle data, response, and error 
} 

task.resume()