0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

SwiftでAPIを叩く方法を簡単に解説してみました!【初心者向け】

Last updated at Posted at 2025-08-13

Swiftで外部のWeb APIを呼び出してデータを取得したり送信したりする方法を紹介します。
ここでは基本のURLSessionを使ったやり方を解説します。

そもそもAPIを叩くってどういうこと?

API(Application Programming Interface)は、他のサービスが公開しているデータや機能を使うための窓口です。
APIを叩くとは、プログラムからその窓口にリクエストを送ってデータをもらったり、情報を送ったりすることを指します。

APIのURLとエンドポイントを確認

APIには、エンドポイントと呼ばれるURLがあります。
たとえば、天気情報を取得するAPIがあれば、そのURLにリクエストを送って天気データを取得します。

SwiftでのAPI呼び出し手順

  • URLを作る
guard let url = URL(string: "https://api.example.com/data") else {
    print("URLが不正です")
    return
}
  • URLRequestを作る(GETやPOSTなどの設定をする)
var request = URLRequest(url: url)
request.httpMethod = "GET"  // GETリクエストの場合
GET: データを取得

URLSessionでデータタスクを作成してリクエストを送る

let task = URLSession.shared.dataTask(with: request) { data, response, error in
    if let error = error {
        print("エラーが発生しました: \(error)")
        return
    }
    
    guard let data = data else {
        print("データがありません")   // 取得したデータを文字列として表示(デバッグ用)

        return
    }
    
    if let responseString = String(data: data, encoding: .utf8) {
        print("レスポンス: \(responseString)")
    }
}
task.resume()  

JSONデータを扱う例

APIから返ってくるデータは多くの場合JSON形式です。
JSONをSwiftの構造体にデコードして使う例を示します。

JSONの構造体を作成

struct User: Codable {
    let id: Int
    let name: String
    let email: String
}

デコードして使う

let task = URLSession.shared.dataTask(with: request) { data, response, error in
    if let error = error {
        print("エラー: \(error)")
        return
    }
    
    guard let data = data else {
        print("データなし")
        return
    }
    
    do {
        let user = try JSONDecoder().decode(User.self, from: data)
        print("ユーザー名: \(user.name), メール: \(user.email)")
    } catch {
        print("JSONデコード失敗: \(error)")
    }
}
task.resume()

POST: データを送信すること

guard let url = URL(string: "https://api.example.com/users") else { return }

var request = URLRequest(url: url)
request.httpMethod = "POST"
request.setValue("application/json", forHTTPHeaderField: "Content-Type")

let newUser = User(id: 123, name: "太郎", email: "taro@example.com")

do {
    request.httpBody = try JSONEncoder().encode(newUser)
} catch {
    print("失敗")
}

let task = URLSession.shared.dataTask(with: request) { data, response, error in
    if let error = error {
        print("エラー: \(error)")
        return
    }
    
    print("成功")
}
task.resume()

まとめ

  • URLSessionを使ってAPIを叩くことができる

  • GETはURLを指定してリクエストを送るだけ

  • JSONデータはCodableで簡単にデコード・エンコードできる

  • POSTなどHTTPメソッドも変更可能

SwiftのAPI通信はまずはこれらを押さえて、徐々に応用していきましょう!

以上、SwiftでAPIを叩く方法でした!ぜひ参考にしてください!🙌

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?