这里有一个快速的答案,希望可以为您指明正确的方向。
- 第一步:下载Postman
- 第 2 步:打开 Postman,将您的网址粘贴到 GET 字段中
- 第 3 步:点击“标题”标签。
TRN-Api-Key 将成为key,您的 API 密钥将成为值。它看起来像这样。
玩转 Postman 拨打电话,确保它们正常工作等。这比使用 Xcode 设置断点等要容易得多。一旦你弄清楚了你将要拨打什么电话正在制作...然后转到 Xcode。
一旦您的GETs 回退 JSON,然后将其剪切并粘贴到类似 https://app.quicktype.io 的内容中。对于我正在使用的示例 URL 中的端点,它为您提供:
struct Response: Codable {
let items: [Item]
}
struct Item: Codable {
let metadata: [Metadatum]
}
struct Metadatum: Codable {
let key: String
let value: String?
}
这是基本的“诗人物理学”代码:
let fortniteChallengesURL = URL(string: "https://api.fortnitetracker.com/v1/challenges")
if let unwrappedURL = fortniteChallengesURL {
var request = URLRequest(url: unwrappedURL)
request.addValue("YOUR API KEY", forHTTPHeaderField: "TRN-Api-Key")
// Make your request and handle the response
}
或者(也许最好),您可以使用像Alamofire 这样的网络框架来发出请求。这是 Alamofire 中的 how to customize headers。
这里是how to use the Codable structs,用于解析来自端点的返回。
这里是使用 Apple 的“工厂”类的成品,如果你想把它扔到操场上的话。您需要自己的 API 密钥。
struct Response: Codable {
let items: [Item]
}
struct Item: Codable {
let metadata: [Metadatum]
}
struct Metadatum: Codable {
let key: String
let value: String?
}
let fortniteChallengesURL = URL(string: "https://api.fortnitetracker.com/v1/challenges")
if let unwrappedURL = fortniteChallengesURL {
var request = URLRequest(url: unwrappedURL)
request.addValue("YOUR API KEY HERE", forHTTPHeaderField: "TRN-Api-Key")
let dataTask = URLSession.shared.dataTask(with: request) { (data, response, error) in
// you should put in error handling code, too
if let data = data {
do {
let json = try JSONDecoder().decode(Response.self, from: data) as Response
// HERE'S WHERE YOUR DATA IS
print(json.items.count)
} catch {
print(error.localizedDescription)
}
}
}
dataTask.resume()
}