Conectar a um Backend do Atlas App Services - Swift SDK
Nesta página
O cliente do aplicativo é a interface para o backend do App Services. It provides access to the authentication functionality, functions, querying a MongoDB Atlas data source, and Device Sync.
Observação
Manifesto de privacidade da Apple
The SDK's Apple privacy manifest does not cover connecting to Atlas, or any usage of data through the App client. Se a sua aplicação se conectar ao App Services e você pretende distribuí-la por meio da App Store da Apple, talvez seja necessário fornecer suas próprias divulgações no manifesto de privacidade da Apple da aplicação.
Para obter mais informações, consulte o Manifesto de Privacidade da Apple.
Acesse o cliente do aplicativo
Passe o ID do aplicativo para seu aplicativo, que você pode encontrar na interface do usuário do App Services.
let app = App(id: YOUR_APP_SERVICES_APP_ID) // replace YOUR_APP_SERVICES_APP_ID with your App ID
Configuração
Você pode passar um objeto de configuração para 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)
Você pode criar várias instâncias do cliente de aplicativo para se conectar a vários aplicativos. Todas as instâncias de cliente de aplicativo que compartilham a mesma ID de aplicativo usam a mesma conexão subjacente.
Importante
Alterando uma configuração de aplicativo após inicializar o aplicativo
Começando com o Swift SDK versão 10.46.0, você pode alterar um baseURL
na configuração do aplicativo e o cliente do aplicativo usará o novo baseURL
. Nas versões 10.45.3 e anteriores do Swift SDK, quando você inicializa o cliente do aplicativo, a configuração é armazenada em cache internamente. A tentativa de fechar uma aplicação e reabri-la com uma configuração alterada dentro do mesmo processo não tem efeito. O cliente continua usando a configuração em cache.
Sincronizar o compartilhamento de conexão
Novo na versão 10.41.0.
Você pode definir o conjunto enableSessionMultiplexing
no AppConfiguration para especificar se o Realm Swift SDK deve abrir uma conexão com o servidor para cada Realm sincronizado ou compartilhar uma conexão com o servidor para todos os domínios sincronizados.
Se você não especificar um valor para esse bool, o Realm assumirá como padrão o compartilhamento de uma única conexão por usuário do App Services para todos os realms sincronizados.
let configuration = AppConfiguration(enableSessionMultiplexing: false) let app = App(id: YOUR_APP_SERVICES_APP_ID, configuration: configuration)
Opções de tempo limite de sincronização
Novo na versão 10.41.0.
Você pode definir várias opções de tempo limite de sincronização no AppConfiguration. A propriedade syncTimeouts
pode aceitar um objeto SyncTimeoutOptions
para substituir os valores padrão para essas configurações.
Para obter uma lista completa das configurações de tempo limite disponíveis e suas definições, consulte 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)
Conecte-se a um servidor MongoDB específico
Por padrão, o Atlas Device SDK se conecta ao Atlas usando o baseURL
global de https://services.cloud.mongodb.com
. Em alguns casos, você pode querer se conectar a um servidor diferente:
Seu App Services App usa o sistema local e você deseja se conectar diretamente a um
baseURL
local em sua região.
Você pode especificar um baseURL
no AppConfiguration:
// 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)
Conecte-se a um servidor MongoDB diferente durante o tempo de execução
Novidades na versão 10.50.0.
Em alguns casos, você pode querer alterar o baseURL
enquanto o aplicativo está em execução. Para alterar o baseURL
durante o tempo de execução, chame o método 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")
Essa API é experimental, portanto, você deve usar a importação experimental no arquivo em que deseja usar essa API:
RealmSwiftExperimental) import RealmSwift (
Se você quiser alterar o baseURL
depois de fazer login em um usuário e abrir um banco de banco de dados sincronizado, o aplicativo deverá executar uma reinício do cliente. Execute estas etapas no seu código:
Atualize o
baseURL
chamando o métodoapp.updateBaseUrl(to: )
.Autentique e faça o login do usuário novamente com o novo
baseURL
.Abra um banco de dados de dados sincronizado extraindo dados do novo servidor.
Tanto o servidor quanto o cliente devem estar online para que o usuário se autentique e se conecte ao novo servidor. Se o servidor não estiver online ou o cliente não tiver uma conexão de rede, o usuário não poderá autenticar e abrir o banco de dados de dados.
Sistemas operacionais suportados
O Realm Swift SDK permite a conexão com um Atlas App Services para uma variedade de sistemas operacionais da Apple, dependendo da versão do Xcode e da versão do Realm Swift SDK . A conexão com um App Services App permite:
Autenticação e gerenciamento de usuários
Chamando uma Atlas Function
Executando queries de uma fonte de dados do MongoDB Atlas
Device Sync
Para obter informações atuais sobre sistemas operacionais suportados, consulte Suporte ao sistema operacional.
Neste momento, o Realm Swift SDK não permite a conexão a um App Services App do watchOS.