Couchbase Móvil

FakeIt Series 5 de 5: Desarrollo móvil rápido con Sync-Gateway

Aaron Benton es un arquitecto experimentado especializado en soluciones creativas para desarrollar aplicaciones móviles innovadoras. Tiene más de 10 años de experiencia en desarrollo full stack, incluyendo ColdFusion, SQL, NoSQL, JavaScript, HTML y CSS. Aaron es actualmente Arquitecto de Aplicaciones para Shop.com en Greensboro, Carolina del Norte y es un Campeón de la comunidad Couchbase.

Aaron Benton

Para nuestro último post en el FakeIt serie vamos a explorar cómo podemos aprovechar FakeIt + Servidor Couchbase + Pasarela de sincronización para poner en marcha nuestro entorno local para el desarrollo móvil. Para ello utilizaremos Docker y docker-compose. Descargo de responsabilidad: No soy en absoluto un experto en Docker, esto es simplemente un ejemplo de lo que he hecho para configurar rápidamente un entorno de desarrollo y un conjunto de datos.

Docker

Utilizaremos dos contenedores Docker, uno para Servidor Couchbase y uno para Pasarela de sincronización. Podríamos definir un archivo docker-compose.yaml que simplemente tirara de couchbase:latest y couchbase/sync-gateway:latest pero aún habría necesidad de configuración manual y queremos ser capaces de automatizar tanto como sea posible para nuestra aplicación. Para ello tendremos que construir nuestros propios contenedores a partir de ambos añadiendo nuestros propios scripts y configuración.

Nuestro archivo docker-compose.yaml primero construye un contenedor en el Dockerfile desde ./.docker/couchbase/Dockerfile que se ve así.

Este Dockerfile en realidad sólo hace dos cosas, copiar un script de configuración y ejecutar ese script. El script configure-node.sh tiene este aspecto.

 

El script configure-node.sh está haciendo un par de cosas:

  1. Esperando a que se inicie el servicio Couchbase para poder configurarlo.
  2. Inicializar la configuración del Cluster
  3. Crear nuestro cubo de comercio electrónico

El contenedor Couchbase ya está construido, el siguiente contenedor que necesita ser construido es el contenedor Sync Gateway. Por defecto el contenedor Sync Gateway utiliza el bucket sync gateway de sólo memoria walrus. Tendremos que actualizar esta configuración proporcionando nuestro propio archivo sync-gateway.json para que podamos actualizar la configuración de almacenamiento y acceso. Por último, el contenedor Sync Gateway sólo expone el puerto 4984, que es el puerto público, como esto es para fines de desarrollo vamos a seguir adelante y exponer el puerto 4985 que es el puerto de administrador.

 

Una vez más, esto es sólo para fines de desarrollo. Usted nunca debe permitir el acceso desde cualquier lugar a su adminInterface o habilitar INVITADO acceso a tu sync-gateway a menos que haya una muy buena razón para hacerlo.

La estructura de nuestra aplicación tiene ahora este aspecto:

app structure

Ahora que hemos configurado nuestros contenedores Docker y nuestro archivo docker-compose.yaml necesitamos construir e iniciar los contenedores. Para ello, ejecutamos el siguiente comando desde nuestro directorio de aplicaciones:

Nota: para los propósitos del screencast, se omite el parámetro -d para ejecutar los contenedores en modo separado.

Modelos

Nuestros contenedores ya están iniciados, lo siguiente que tenemos que hacer antes de generar nuestro conjunto de datos es actualizar los modelos para que admitan el atributo channels.

Este modelo sólo se sincronizará con canales específicos del usuario.

Sólo por diversión publicaremos este modelo en un canal global al que estarán suscritos todos nuestros usuarios.

Este modelo sólo se sincronizará con canales específicos del usuario.

Ahora que nuestros modelos han sido actualizados para soportar canales, podemos generar nuestro conjunto de datos aleatorios e introducirlo en Servidor Couchbase a través de la Pasarela de sincronización API REST. Le decimos FakeIt para ello, utilice el siguiente comando:

Para fines de desarrollo hemos permitido el acceso de invitados a nuestro Pasarela de sincronización. Sin embargo, si tiene desactivado el acceso de invitados, puede seguir utilizando FakeIt especificando un nombre de usuario y una contraseña a un usuario existente mediante el siguiente comando:

Antes de dar salida al conjunto de datos generado, FakeIt se autenticará contra el Pasarela de sincronización para recuperar la información de sesión necesaria.

Pruebas

Lo siguiente que tenemos que hacer es crear un usuario de pasarela de sincronización para que podamos sincronizar sus documentos localmente. Para esta prueba, vamos a coger un documento de usuario aleatorio de nuestro modelo Users y crearemos un usuario a partir de ese documento. En este ejemplo será user_1001, y crearemos el usuario usando el comando curl:

 

blog5 example3

Aplicación

Hemos creado un pequeño VueJS proyecto que utiliza PouchDB para conectarse al Sync Gateway y extraer los documentos de un usuario autenticado. Nuestra aplicación sólo va a mostrar los diferentes tipos de documentos disponibles, sus IDs y contenido.

 

La aplicación de muestra completa puede consultarse en https://github.com/bentonam/fakeit-couchbase-mobile-example

Conclusión

A lo largo de esta serie han visto cómo FakeIt puede tomar simples modelos YAML y generar grandes cantidades de datos falsos y enviar esos datos a múltiples destinos diferentes. Por favor, consulte el repositorio, pull requests son bienvenidos, siempre estamos buscando mejoras y mejoras para hacer la herramienta más útil para la comunidad. También me gustaría aprovechar este momento para agradecer a aquellos que han hecho contribuciones al proyecto. La versión 1.0 no se habría publicado sin la ayuda de  Tyler Benton (@tjbenton21), también Trevor Brindle (@VinceKerrazzi), Jessica Kennedy (@mistersender), Adam Burdette (@RavenStorms619) y Brant Burnett (@btburnett3)

Anterior

Couchbase Champion

Comparte este artículo
Recibe actualizaciones del blog de Couchbase en tu bandeja de entrada
Este campo es obligatorio.

Autor

Publicado por Laura Czajkowski, Directora de la Comunidad de Desarrolladores, Couchbase

Laura Czajkowski es la Snr. Developer Community Manager en Couchbase supervisando la comunidad. Es responsable de nuestro boletín mensual para desarrolladores.

Deja un comentario

¿Listo para empezar con Couchbase Capella?

Empezar a construir

Consulte nuestro portal para desarrolladores para explorar NoSQL, buscar recursos y empezar con tutoriales.

Utilizar Capella gratis

Ponte manos a la obra con Couchbase en unos pocos clics. Capella DBaaS es la forma más fácil y rápida de empezar.

Póngase en contacto

¿Quieres saber más sobre las ofertas de Couchbase? Permítanos ayudarle.