はじめに
すき焼きうまし。
公式ドキュメント
クラロワのAPI叩く手順
- アカウント作る
- APIKEY取得する
- コード書く
アカウント作る&APIKEY作る
https://qiita.com/takahirono7/items/4d76d727945b0edd0657#api-key%E3%81%AE%E4%BD%9C%E6%88%90
この方の記事がとても分かり易かったので参考にしましょう。
コード書く
今回はエラー処理など書いてませんがご了承ください。
次回の記事でがっつりその辺も書きたいと思います。
とりあえず試しにAPI叩いてみたい人はどーぞ。
User.swift
jsonで帰ってきたデータを格納します。
Decodableを継承してあげることでよしなにjsonをマッピングしてくれます。
User.swift
import Foundation
public struct User: Decodable {
var name: String
var tag: String
var expLevel: Int
var trophies: Int
var rank: Int
var previousRank: Int
struct clan: Decodable {
var tag: String
var name: String
struct badge: Decodable {
var name: String
var icon_swf: String
var icon_export_name: String
var vategory: String
var id: Int
var image: String
}
}
struct arena: Decodable {
var name: String
}
}
RequestAPI.swift
apikeyは各自が取ってきたものを使います。
今回使ったAPIは日本のトッププレイヤーを持ってくるというやつです。
URLの最後にJPとは言っていますがここを差し替えてあげると他の国のトッププレイヤーも取ってこれます。
RequestAPI.swift
import Foundation
class RequestAPI {
let baseURL: String = "https://api.royaleapi.com/top/players/JP"
let headers = [
"Authorization": "apikey",//ここはapikeyを各自入れる
"Cache-Control": "no-cache",
]
func getTopUsers() {
let request = NSMutableURLRequest(url: NSURL(string: baseURL )! as URL,
cachePolicy: .useProtocolCachePolicy,
timeoutInterval: 10.0)
request.httpMethod = "GET"
request.allHTTPHeaderFields = headers
let decoder = JSONDecoder()
let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
do {
//Jsonをmodelにマッピング。modelにDecodableを継承させとく。
let users = try decoder.decode([User].self, from: data!)
for user in users {
print(user.name)
}
} catch {
print(error)
}
}
)
dataTask.resume()
}
}
最後に
クラロワのAPIあるなんて意外でしたね。
ポケモンGOとかもAPI出してくれればいいのに。
クラロワは試合の勝ちが決定したらゴブリンスタンプを連打するのが楽しいですね。
他にもいろいろ習得できるっぽいので使ってみてください。