コンテンツにスキップ

Swift / iOS の例 – ヘルス&フィットネス API

Swift を使用して、iOS アプリから ヘルス&フィットネス API にアクセスします。以下に、ネイティブの URLSessionAlamofire を使用した例を示します。


1. URLSession の使用

GET リクエストの例:

import Foundation

let apiKey = "YOUR_API_KEY"
let url = URL(string: "https://api.hefitapi.com/api/v1/bmi?height=178&weight=82&units=metric&lang=en")!

var request = URLRequest(url: url)
request.httpMethod = "GET"
request.setValue(apiKey, forHTTPHeaderField: "X-API-Key")

let task = URLSession.shared.dataTask(with: request) { data, response, error in
    if let error = error {
        print("Error:", error)
        return
    }
    guard let data = data else { return }
    do {
        let json = try JSONSerialization.jsonObject(with: data, options: [])
        print(json)
    } catch {
        print("Decoding error:", error)
    }
}

task.resume()

POST リクエストの例:

import Foundation

let apiKey = "YOUR_API_KEY"
let url = URL(string: "https://api.hefitapi.com/api/v1/bmi/post")!

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

let payload: [String: Any] = ["height": 178, "weight": 82, "units": "metric"]
request.httpBody = try? JSONSerialization.data(withJSONObject: payload, options: [])

let task = URLSession.shared.dataTask(with: request) { data, response, error in
    if let error = error {
        print("Error:", error)
        return
    }
    guard let data = data else { return }
    do {
        let json = try JSONSerialization.jsonObject(with: data, options: [])
        print(json)
    } catch {
        print("Decoding error:", error)
    }
}

task.resume()

2. Alamofire の使用 (よりシンプルな構文に適しています)

Swift Package Manager を使用して Alamofire をインストールします:

// In Xcode: File > Swift Packages > Add Package Dependency
// URL: https://github.com/Alamofire/Alamofire.git

GET リクエストの例:

import Alamofire

let apiKey = "YOUR_API_KEY"
let url = "https://api.hefitapi.com/api/v1/bmi"

AF.request(url, method: .get, parameters: ["height": 178, "weight": 82, "units": "metric", "lang": "en"], headers: ["X-API-Key": apiKey])
    .responseJSON { response in
        switch response.result {
        case .success(let value):
            print(value)
        case .failure(let error):
            print("Error:", error)
        }
    }

POST リクエストの例:

import Alamofire

let apiKey = "YOUR_API_KEY"
let url = "https://api.hefitapi.com/api/v1/bmi/post"
let payload: [String: Any] = ["height": 178, "weight": 82, "units": "metric"]

AF.request(url, method: .post, parameters: payload, encoding: JSONEncoding.default, headers: ["X-API-Key": apiKey])
    .responseJSON { response in
        switch response.result {
        case .success(let value):
            print(value)
        case .failure(let error):
            print("Error:", error)
        }
    }

3. 備考とベストプラクティス

  • メインスレッドをブロックしないように、非同期ネットワーク呼び出しを使用します。
  • API キーを常に保護してください。クライアントサイドのコードに埋め込まないでください (逆コンパイルされる可能性があります)。
  • 応答には、適用可能な場合は _enterprise などのメタデータが含まれます。これらは監視およびクォータ追跡に使用できます。

その他の言語

ヘルス&フィットネス API を他のプログラミング言語で統合する方法を調べてください:

ヘルス&フィットネス API を今日からアプリに統合しましょう!


ヘルス&フィットネス API 現代のデジタルヘルスインフラを支えます