El cliente de la aplicación es la interfaz backend de Atlas App Services. Proporciona acceso a la autenticación y a las funciones de Atlas.
Algunas de las funciones de tu aplicación de Servicios de Aplicaciones están asociadas a cuentas de usuario. Por ejemplo, necesitas autenticar a un usuario para poder acceder a las funciones de tu aplicación.
Requisitos previos
Antes de poder conectarse a Atlas App Services, necesita una aplicación de App Services con un ID de aplicación. Para comenzar, consulte Cree una aplicación en la documentación de App Services.
Para saber cómo encontrar su ID de aplicación en la interfaz de usuario de App Services, consulte Encontrar su ID de aplicación en la documentación de App Services.
Acceder al cliente de la aplicación
Encuentra el ID de la aplicación en la interfaz de usuario de Realm.
Crea una instancia de realm::App::configuration() con el ID de tu aplicación como argumento. Puedes configurar detalles adicionales mediante la configuración de la aplicación.
Inicializar una aplicación usando esto
realm::App::configuration()Utilice esta instanciaApppara acceder a las funciones de App Services en toda su aplicación cliente.
auto appConfig = realm::App::configuration(); appConfig.app_id = APP_ID; auto app = realm::App(appConfig);
Tip
Construyendo una aplicación de Android
Al crear una aplicación Android con el SDK de Realm para C++, debe pasar filesDir.path el file_path parámetro al parámetro en el constructor db_config. Para obtener más información, consulte: Crear una aplicación Android.
Establecer HTTP Headers personalizados
Si usa App Services o Device Sync con una configuración de proxy, es posible que necesite configurar encabezados HTTP personalizados. El SDK de Realm C++ permite configurar encabezados HTTP personalizados en realm::App::configuration() y realm::db_config.
Cuando inicialice la configuración de la aplicación, pase un mapa de claves y valores de encabezado de cadena.
std::map<std::string, std::string> customHttpHeaders; customHttpHeaders.emplace("CUSTOM_HEADER_NAME", "CUSTOM_HEADER_VALUE"); auto appConfig = realm::App::configuration(); appConfig.app_id = APP_ID; appConfig.custom_http_headers = customHttpHeaders; auto app = realm::App(appConfig);
Si llama a una función, la aplicación utiliza estos encabezados personalizados.
Si desea utilizar encabezados personalizados con Device Sync, también debe configurar los encabezados en realm::db_config.
Utilice un proxy HTTP con Realm
Si ha configurado un proxy HTTP, puede utilizar la tunelización HTTP para enrutar el tráfico de su reino.
Para configurar Realm para que utilice su proxy HTTP:
Inicialice un proxy_config con los detalles de su proxy.
Establezca la configuración del proxy en su realm::App::configuration.
Establezca la configuración del proxy en su realm::db_config.
auto proxyConfig = realm::proxy_config(); proxyConfig.port = 8080; proxyConfig.address = "127.0.0.1"; proxyConfig.username_password = {"username", "password"}; auto appConfig = realm::App::configuration(); appConfig.app_id = APP_ID; appConfig.proxy_configuration = proxyConfig; auto app = realm::App(appConfig); auto user = app.get_current_user(); auto syncConfig = user->flexible_sync_configuration(); syncConfig.set_proxy_config(proxyConfig); auto syncedRealm = realm::db(syncConfig);
Encriptar Metadatos de la aplicación
Al conectarse a App Services, Realm crea archivos de metadatos adicionales en un dispositivo. Para obtener más información sobre estos archivos de metadatos, consulte el SDK de dispositivos Atlas para C++.
Puedes cifrar los metadatos que App Services almacena en los dispositivos cliente, de forma similar a cifrar el dominio.
En los dispositivos Apple, los metadatos están cifrados por defecto. Para desactivarlo, añade REALM_DISABLE_METADATA_ENCRYPTION a tus variables de entorno.
Para habilitar el cifrado de metadatos en otras plataformas, debe configurar un metadata_encryption_key en su realm::App::configuration.
// Check if we already have a key stored in the platform's secure storage. // If we don't, generate a new one. // Use your preferred method to generate a key. This example key is // NOT representative of a secure encryption key. It only exists to // illustrate the form your key might take. std::array<char, 64> exampleKey = { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 0, 0, 0, 3, 3, 0, 0, 0, 0, 0, 0, 4, 4, 0, 0, 0, 0, 0, 0, 5, 5, 0, 0, 0, 0, 0, 0, 6, 6, 0, 0, 0, 0, 0, 0, 7, 7, 0, 0, 0, 0, 0, 0}; // Create and populate an App configuration. auto appConfig = realm::App::configuration(); appConfig.app_id = APP_ID; // Specify the metadata key. appConfig.metadata_encryption_key = exampleKey; // Use the configuration when you open the app. auto app = realm::App(appConfig);