Atlas App Services バックエンドへの接続 - Swift SDK
App クライアントは、App Services バックエンドへのインターフェースです。 認証機能、関数、 MongoDB Atlas データソースのクエリ 、 Device Sync へのアクセスを提供します。
注意
Apple プライバシーマニフェスト
SDK の Apple プライバシーマニフェストは、Atlas への接続、または App クライアントを介したデータの使用をカバー していません 。 アプリが App Services に接続し、それを Apple App Store を通じて配布する場合は、アプリの Apple プライバシーマニフェストで独自の情報公開を提供する必要がある場合があります。
詳細については、「 Apple プライバシーマニフェスト 」を参照してください。
アプリ クライアントへのアクセス
アプリのアプリ ID を渡します。このアプリ IDは、App Services UI で確認できます。
let app = App(id: YOUR_APP_SERVICES_APP_ID) // replace YOUR_APP_SERVICES_APP_ID with your App ID
構成
構成オブジェクトを App
に渡すことができます。
let configuration = AppConfiguration( baseURL: "https://services.cloud.mongodb.com", // You can customize base URL transport: nil, // Custom RLMNetworkTransportProtocol defaultRequestTimeoutMS: 30000 ) let app = App(id: "my-app-services-app-id", configuration: configuration)
複数のアプリに接続するには、複数のアプリクライアントインスタンスを作成します。 同じアプリ ID を共有するすべてのアプリクライアント インスタンスは、同じ基礎の接続を使用します。
重要
アプリ初期化後のアプリ構成の変更
Swift SDK バージョン10.46.0以降、 アプリ構成でbaseURL
を変更し、アプリクライアントは新しいbaseURL
を使用します。 Swift SDK バージョン10.45.3以前では、アプリクライアントを初期化すると、構成が内部的にキャッシュされます。 アプリを閉じてから、同じプロセス内で変更された構成で再度開いても効果はありません。 クライアントはキャッシュされた構成を引き続き使用します。
同期接続の共有
バージョン 10.41.0 の新機能。
AppConfigurationでenableSessionMultiplexing
ブール値を設定して、Realm Swift SDK が同期された Realm ごとにサーバーへの接続を開くか、すべての同期された Realm のサーバーへの接続を共有するかを指定できます。
このブール値を指定しない場合、Realm はデフォルトで、同期されたすべての Realm に対して App Services ユーザーごとに 1 つの接続を共有します。
let configuration = AppConfiguration(enableSessionMultiplexing: false) let app = App(id: YOUR_APP_SERVICES_APP_ID, configuration: configuration)
同期タイムアウト オプション
バージョン 10.41.0 の新機能。
AppConfigurationでさまざまな同期タイムアウト オプションを設定できます。 syncTimeouts
プロパティはSyncTimeoutOptions
オブジェクトを受け入れて、これらの設定のデフォルト値を上書きできます。
使用可能なタイムアウト設定とその定義の完全なリストについては、「 RMSyncTimeoutOptions 」を参照してください。
let syncTimeoutOptions = SyncTimeoutOptions( connectTimeout: 30000, connectionLingerTime: 5000, pingKeepalivePeriod: 10000, pongKeepaliveTimeout: 10000, fastReconnectLimit: 30000 ) let configuration = AppConfiguration(syncTimeouts: syncTimeoutOptions) let app = App(id: YOUR_APP_SERVICES_APP_ID, configuration: configuration)
特定のサーバーへの接続
デフォルトでは、Atlas Device SDK はhttps://services.cloud.mongodb.com
のグローバルbaseURL
を使用して Atlas に接続します。 場合によっては、別のサーバーに接続する必要があるかもしれません。
App Services Appはローカル配置を使用しており、リージョン内のローカル
baseURL
に直接接続する場合があります。
AppConfigurationでbaseURL
を指定できます。
// Specify a baseURL to connect to a server other than the default. // In this case, an Edge Server instance running on the device. let configuration = AppConfiguration(baseURL: "http://localhost:80") let edgeApp = App(id: EDGE_SERVER_APP_ID, configuration: configuration)
実行中に別のサーバーへの接続
バージョン10.50.0の新機能。
場合によっては、アプリの実行中にbaseURL
を変更する必要があるかもしれません。 たとえば、Edge Server 間でローテーションしたり、App Services 接続から Edge Server 接続に移行したりする場合があります。 実行時にbaseURL
を変更するには、 app.updateBaseUrl(to: )
メソッドを呼び出します。
// Specify a baseURL to connect to a server other than the default. // In this case, an Edge Server instance running on the device. let configuration = AppConfiguration(baseURL: "http://localhost:80") let edgeApp = App(id: EDGE_SERVER_APP_ID, configuration: configuration) // You can check the `baseURL` of an app to define app logic. if edgeApp.baseURL == "http://localhost:80" { print("Client app is currently connected to a local Edge Server instance") } // ... log in a user and use the app... // ... some time later... try await edgeApp.updateBaseUrl(to: "https://services.cloud.mongodb.com")
この API は実験的なため、この API を使用するファイルで実験的なインポートを使用する必要があります。
RealmSwiftExperimental) import RealmSwift (
If you want to change the baseURL
after you have logged in a user and have opened a synced database, the app must perform a client reset. コード内で次の手順を実行します。
app.updateBaseUrl(to: )
メソッドを呼び出してbaseURL
を更新します。新しい
baseURL
を使用してユーザーを再度認証してログインします。同期されたデータベースを開き、新しいサーバーからデータをプルします。
ユーザーが認証を行い、新しいサーバーに接続するには、サーバーとクライアントの両方がオンラインである必要があります。 サーバーがオンラインでない場合、またはクライアントにネットワーク接続がない場合、ユーザーは認証を行いデータベースを開くことができません。
サポートされているオペレーティングシステム
Realm Swift SDK は、Xcode バージョンと Realm Swift SDK バージョンに応じて、Apple オペレーティング システムの範囲向けの Atlas App Services App への接続をサポートしています。 App Services Appに接続すると、次のことが可能になります。
認証とユーザー管理
Atlas Function の呼び出し
MongoDB Atlas データソースのクエリ
デバイスの同期
サポートされているオペレーティング システムの最新情報については、 OS サポート を参照してください。
現時点では、Realm Swift SDK は watchOS から App Services App への接続をサポートしていません。