APIコールの実行

APIコールの実行

BoxアプリケーションとiOSアプリケーションがBox iOS SDKを使用して作成、設定されたら、初めてのBox APIコールを実行できるようになります。

空のiOSアプリケーションを使用して、現在認証されているユーザーの名前を取得するためのリクエストをBoxに対してトリガーするボタンを作成します。

これらの例で使用されているブロックアクションを使用した場合、処理は遅くなります。本番アプリでは、これらのブロックアクションを適切なタスク委任アクションやブロック以外のアクションに置き換える必要があります。

ボタンの作成

XcodeのSwiftアプリケーション内で、ContentView.swiftを読み込みます。ファイルの先頭にContentViewstructが表示されます。その中には、アプリをエミュレータで実行した場合にiOSアプリケーションに出力される基本の文字列があります。

import SwiftUI

struct ContentView: View {
  var body: some View {
    Text("Hello, World!")
  }
}

最初に、現在のユーザーを取得するための呼び出しをトリガーできるように、Textの出力行をボタンに置き換えます。その行を以下のボタンに置き換えます。

Button(action: {
  // Perform some action
}) {
  Text("Click to get current user")
}
.padding(10)
.cornerRadius(20)
.foregroundColor(.white)
.background(Color.blue)

次の手順では、Boxからユーザーの詳細を取得するアクションをボタンに追加します。

APIコールのボタンアクションの追加

ユーザーがボタンをクリックしたときに、ユーザーの詳細が取得されるようにします。そのためには、Box iOS SDKのインポートを追加することと呼び出しを実行するボタンアクションを追加することという2つの処理が必要です。

ContentView.swiftファイルの先頭に、他のimportステートメントとともにimport BoxSDKを追加します。

次に、現在はコメントのプレースホルダがあるボタンアクション内に、現在のユーザーを取得するためのiOS SDKへの呼び出しを追加します。APIコールが完了すると、開発者コンソールに認証メッセージが出力されます。実装を容易にするため、処理をブロックするsleep(5)コールを配置しています。これは、リクエストが完了するのに十分な時間をとることで、Box iOS SDKから呼び出しを実行できるかどうかをテストするためです。

{{YOUR DEVELOPER TOKEN}}を実際の開発者トークンに置き換えます。

let client = BoxSDK.getClient(token: "{{YOUR DEVELOPER TOKEN}}")

client.users.getCurrent(fields:["name", "login"]) { (result: Result<User,
  BoxSDKError>) in
  guard case let .success(user) = result else {
      print("Error getting user information")
      return
  }
  print("Authenticated as \(user.name)")
}

sleep(5)

iOSエミュレータでサンプルアプリケーションをビルドして実行します。

最後の手順で開発者トークンを作成してから1時間以上後にこのコードを実行する場合、開発者トークンは60分間しか保持されないため、前の手順と同じ方法を使用して、開発者トークンを取り消して新たに生成する必要があります。

アプリケーションがエミュレータに読み込まれると、作成したボタンが表示されます。そのボタンをクリックしてAPIリクエストを開始します。

Xcodeの開発者コンソール内にAPIリクエストとレスポンスが表示されます。最後の行には、指定したユーザーのprintステートメントが表示されています。

◁ Status code: 200: no error
◁ Headers: 
    ◁ Cache-Control, Value: no-cache, no-store
    ◁ BOX-REQUEST-ID, Value: 1c55151238444132eca16b4c2346d005
    ◁ Transfer-Encoding, Value: Identity
    ◁ content-type, Value: application/json
    ◁ Connection, Value: keep-alive
    ◁ Strict-Transport-Security, Value: max-age=31536000
◁ Body: {"type":"user","id":"123456789","name":"Test
          User","login":"testuser@test.com"}

Authenticated as Optional("Test User")

Xcodeの開発者コンソールが表示されない場合は、メニューから [View (表示)] -> [Debug Area (デバッグ領域)] -> [Activate Console (コンソールをアクティブ化)] をクリックします。

これで、Box iOS SDKの設定が完了し、Box APIへの最初の呼び出しを実行できました。

まとめ

  • 空のiOSアプリケーションにボタンを追加しました。
  • iOS SDKを使用して現在のユーザーを取得するリクエストを追加しました。