APIとは
アプリケーションプログラミングインターフェイスの略称。
他のプログラムと簡単に接続できる
殆どのプログラムではデータの送受信等にAPIが使用されている.
SwiftでAPIを取ってくるにはどうすればよいか
① URLの作成
② URLセッションの作成
③ URLセッションにタスクを与える。
④ タスクを始める
この順番でコードを書いていく
api.swift
//例
//ネットワーキングする場所
func performRequest(urlString:String) {
//① URLの作成
if let url = URL(string: urlString) {//optionalURL型で帰ってくる
//② URLセッションの作成(基本デフォルト設定)
let session = URLSession(configuration: .default)
//③ URLセッションにタスクを与える。//completionHandlerとは値として関数を取ります。
let task = session.dataTask(with: url, completionHandler: handle(data:response:error:))
//④ タスクを始める(データを取ってくる)
task.resume()
}
}
func handle(data:Data?,response:URLResponse?,error:Error?){
//errorがわたってくるのでエラーがあったかどうか確かめられる。
if error != nil {
print(error!)
return
}
if let safeData = data {
let dataString = String(data: safeData, encoding: .utf8)
print(dataString!)
}
}
クロージャーを使うと簡潔にかけるので通常は下記の様に書く
closure.swift
func performRequest(urlString:String) {
//① URLの作成
if let url = URL(string: urlString) {
//② URLセッションの作成(基本デフォルト設定)
let session = URLSession(configuration: .default)
//③ URLセッションにタスクを与える。//completionHandlerとは値として関数を取ります。
let task = session.dataTask(with: url) { data, response, error in
if error != nil {
print(error)
return
}
if let SafeData = data {
let dataString = String(data: safeData, encoding: .utf8)
print(dataString!)
}
}
//④ タスクを始める
task.resume()
}
}
これだけだとString型のものしかとってこれないのでこれをParseJsonをしてswiftでも使えるようにしなくてはいけない。
補足情報
URLSessionとは ネットワーキングする際にネットワーク上のデータをまとめてダウンロードしてくれたりアップロードしてくれたりする。
URLSessionTaskとは URLSessionがなにをするのかをきめる。ダウンロードなのかアップロードなのか等(URLSessionDataTask URLSessionUploadTask URLSessionDownloadTask
)
URLSessionConfigurationとは URLSessionの設定。.defaultでデフォルト設定が多いが、キャッシュやクッキーの扱い方によってbackground ephemeral
などに設定する必要がある。