Atlas App Services 백엔드에 연결 - Swift SDK
앱 클라이언트는 App Services 백 엔드에 대한 인터페이스입니다. 인증 기능 , MongoDB Atlas 데이터 소스 쿼리 및 Realm Mobile Sync에 대한 액세스를 제공합니다.
참고
Apple 개인정보 취급방침
SDK의 Apple 개인정보 취급방침에는 Atlas 연결 또는 앱 클라이언트를 통한 데이터 사용은 포함되지 않습니다. 앱이 App Services에 연결되고 Apple App Store를 통해 배포하려는 경우 앱의 Apple 개인정보 취급방침에 직접 공개해야 할 수 있습니다.
자세한 내용은 Apple 개인정보처리방침을 참조하세요.
앱 클라이언트에 액세스
App Services UI 에서 찾을수 있는 앱의 앱 ID 를 전달합니다.
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에 대해 App Services 사용자당 단일 연결을 공유합니다.
let configuration = AppConfiguration(enableSessionMultiplexing: false) let app = App(id: YOUR_APP_SERVICES_APP_ID, configuration: configuration)
동기화 시간 초과 옵션
버전 10.41.0의 새로운 기능.
AppConfiguration 에서 다양한 동기화 시간 초과 옵션을 설정할 수 있습니다. syncTimeouts
속성은 SyncTimeoutOptions
객체를 허용하여 이러한 설정의 기본값을 재정의할 수 있습니다.
사용 가능한 시간 초과 설정과 해당 정의의 전체 목록은 RLMSyncTimeoutOptions를 참조하세요.
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)
특정 MongoDB 서버에 연결
기본적으로 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)
런타임 중 다른 MongoDB 서버에 연결
버전 10.50.0에 추가 되었습니다.
경우에 따라 앱 이 실행 동안 baseURL
을(를) 변경해야 할 수도 있습니다. 런타임 중에 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 (
사용자로 로그인하고 동기화된 데이터베이스 를 연 후 baseURL
를 변경하려면 앱 에서 클라이언트 재설정 을 수행해야 합니다. 코드에서 다음 단계를 수행합니다.
app.updateBaseUrl(to: )
메서드를 호출하여baseURL
를 업데이트합니다.새
baseURL
을(를) 사용하여 사용자를 인증하고 다시 로그인합니다.새 서버 에서 데이터를 가져오는 동기화된 데이터베이스 를 엽니다.
사용자가 새 서버 를 인증하고 연결하려면 서버 와 클라이언트 가 모두 온라인 여야 합니다. 서버 가 온라인 가 아니거나 클라이언트 가 네트워크에 연결되어 있지 않으면 사용자는 데이터베이스 를 인증하고 열 수 없습니다.
지원되는 운영 체제
Realm Swift SDK 는 Xcode 버전 및 Realm Swift SDK 버전에 따라 범위 Apple 운영 체제에서 Atlas App Services 앱 연결을 지원합니다. App Services App 에 연결하면 다음이 가능해집니다.
인증 및 사용자 관리
Atlas Function호출
MongoDB Atlas 데이터 소스 쿼리
Device Sync
지원되는 운영 체제에 대한 최신 정보는 OS 지원을 참조하세요.
현재 Realm Swift SDK 는 watchOS에서 App Services App 에 연결하는 것을 지원 하지 않습니다.