Aaron Benton é um arquiteto experiente, especializado em soluções criativas para desenvolver aplicativos móveis inovadores. Ele tem mais de 10 anos de experiência em desenvolvimento de pilha completa, incluindo ColdFusion, SQL, NoSQL, JavaScript, HTML e CSS. Atualmente, Aaron é Arquiteto de Aplicativos da Shop.com em Greensboro, Carolina do Norte, e é um Campeão da comunidade do Couchbase.

Aaron Benton

Para nossa última postagem na seção Falsa vamos explorar como podemos aproveitar Falsa + Servidor Couchbase + Gateway de sincronização para colocar nosso ambiente local em funcionamento para o desenvolvimento móvel. Faremos isso usando Docker e docker-compose. Isenção de responsabilidade: não sou de forma alguma um especialista em Docker, este é apenas um exemplo do que fiz para configurar rapidamente um ambiente de desenvolvimento e um conjunto de dados.

Docker

Usaremos dois contêineres do Docker, um para Servidor Couchbase e um para Gateway de sincronização. Poderíamos definir um arquivo docker-compose.yaml que simplesmente extraísse do couchbase:latest e do couchbase/sync-gateway:latest, mas ainda haveria a necessidade de configuração manual e queremos poder automatizar o máximo possível para o nosso aplicativo. Para fazer isso, precisaremos criar nossos próprios contêineres a partir de ambos, adicionando nossos próprios scripts e configurações.

Nosso arquivo docker-compose.yaml está primeiro criando um contêiner no Dockerfile a partir de ./.docker/couchbase/Dockerfile, que tem a seguinte aparência.

Esse Dockerfile está realmente fazendo apenas duas coisas: copiando um script de configuração e executando esse script. O script configure-node.sh tem a seguinte aparência.

 

O script configure-node.sh está fazendo algumas coisas:

  1. Aguardando o início do serviço Couchbase para que ele possa ser configurado
  2. Inicialização da configuração do cluster
  3. Criação do nosso balde de comércio eletrônico

O contêiner do Couchbase já foi criado; o próximo contêiner que precisa ser criado é o contêiner do Sync Gateway. Por padrão, o contêiner do Sync Gateway usa o bucket do gateway de sincronização somente de memória da morsa. Precisaremos atualizar essa configuração fornecendo nosso próprio arquivo sync-gateway.json para que possamos atualizar as configurações de armazenamento e acesso. Por fim, o contêiner do Sync Gateway expõe apenas a porta 4984, que é a porta pública. Como isso é para fins de desenvolvimento, vamos expor a porta 4985, que é a porta do administrador.

 

Novamente, isso é apenas para fins de desenvolvimento. Você nunca deve permitir o acesso de qualquer lugar à sua adminInterface ou habilitar CONVIDADO acesso ao seu gateway de sincronização, a menos que haja um bom motivo para isso.

A estrutura do nosso aplicativo agora é a seguinte:

app structure

Agora que configuramos nossos contêineres do Docker e definimos nosso arquivo docker-compose.yaml, precisamos criar e iniciar os contêineres. Para isso, executamos o seguinte comando no diretório de aplicativos:

Observação: Para fins do screencast, o parâmetro -d para executar os contêineres no modo desanexado é omitido.

Modelos

Nossos contêineres já foram iniciados; a próxima coisa que precisamos fazer antes de gerar nosso conjunto de dados é atualizar os modelos para dar suporte ao atributo channels.

Esse modelo só será sincronizado com canais específicos do usuário.

Apenas por diversão, publicaremos esse modelo em um canal global no qual todos os nossos usuários estarão inscritos.

Esse modelo só será sincronizado com canais específicos do usuário.

Agora que nossos modelos foram atualizados para oferecer suporte a canais, podemos gerar nosso conjunto de dados aleatórios e enviá-lo para Servidor Couchbase através do Gateway de sincronização API REST. Nós informamos Falsa para fazer isso usando o seguinte comando:

Para fins de desenvolvimento, permitimos o acesso de convidados ao nosso Gateway de sincronização. No entanto, se o acesso de convidados estiver desativado, você ainda poderá usar Falsa especificando um nome de usuário e uma senha para um usuário existente usando o seguinte comando:

Antes da saída do conjunto de dados gerado, Falsa será autenticado no Gateway de sincronização para recuperar as informações necessárias da sessão.

Testes

A próxima coisa que precisamos fazer é criar um usuário de gateway de sincronização para que possamos sincronizar seus documentos localmente. Para esse teste, vamos pegar um documento de usuário aleatório do nosso modelo Users e criar um usuário a partir desse documento. Neste exemplo, será user_1001, e criaremos o usuário usando o comando curl:

 

blog5 example3

Aplicativo

Criamos um pequeno VueJS projeto que utiliza PouchDB para se conectar ao Sync Gateway e extrair os documentos de um usuário autenticado. Nosso aplicativo mostrará apenas os diferentes tipos de documentos disponíveis, seus IDs e conteúdo.

 

O aplicativo de amostra completo pode ser visualizado em https://github.com/bentonam/fakeit-couchbase-mobile-example

Conclusão

Ao longo desta série, você viu como Falsa pode usar modelos YAML simples, gerar grandes quantidades de dados falsos e enviar esses dados para vários destinos diferentes. Confira o repositório, solicitações pull são bem-vindas, pois estamos sempre buscando melhorias e aprimoramentos para tornar a ferramenta mais útil para a comunidade. Também gostaria de aproveitar este momento para agradecer àqueles que fizeram contribuições para o projeto. A versão 1.0 não teria sido lançada sem a ajuda de  Tyler Benton (@tjbenton21), também Trevor Brindle (@VinceKerrazzi), Jessica Kennedy (@mistersender), Adam Burdette (@RavenStorms619) e Brant Burnett (@btburnett3)

Anterior

Couchbase Champion

Autor

Postado por Laura Czajkowski, gerente da comunidade de desenvolvedores, Couchbase

Laura Czajkowski é a Snr. Developer Community Manager da Couchbase, supervisionando a comunidade. Ela é responsável pelo nosso boletim informativo mensal para desenvolvedores.

Deixar uma resposta