Boa tarde
Há pouco tempo, era necessário implementar em uma comunicação de aplicativo Android com a API do servidor por meio de
solicitações REST . A implementação da parte do software no Android não foi difícil, devido à presença de uma biblioteca
Retrofit simples e conveniente. No entanto, após escrever algumas solicitações GET / POST para APIs abertas existentes (por exemplo, Github e outros exemplos padrão de Retrofit), tornou-se necessário começar a testar a lógica do aplicativo. Nesse caso, é claro, eu gostaria de ter meu próprio servidor, que contém seus modelos de dados e possui interconexões entre modelos, além de vários níveis de acesso a modelos de dados específicos. Neste artigo, gostaria de dizer como criar um servidor local em algumas pequenas etapas, adicionar os modelos necessários, configurar os relacionamentos entre eles e fornecer acesso remoto a este servidor.
Gostaria de esclarecer imediatamente, a fim de evitar mal-entendidos por parte dos leitores:
Eu, assim como aqueles a quem este artigo se destina, sou iniciante na implementação da parte do servidor, que, por acaso, entrei em uma situação em que fui forçado a aumentar a API o mais rápido possível para testar o aplicativo Android. Todas as informações apresentadas no artigo, pouco a pouco, podem ser encontradas nos espaços abertos do google e youtube, e encontrá-las e montá-las em um único todo não será difícil se você souber o que procurar. No entanto, isso leva tempo para tomar decisões sobre a implementação tecnológica, bem como procurar informações para cada decisão específica.
1. NodeJS e Loopback
A primeira coisa que você precisa esclarecer imediatamente é que o servidor será implementado usando a estrutura Lodeback Node.js. Primeiro, instale o próprio Node.js. A versão mais recente do Node.js está no site
nodejs.org/en/download , faça o download e instale-o.
Depois disso, execute a linha de comandos, digite o seguinte comando e aguarde o final do processo:
npm install -g loopback-cli
2. Crie um aplicativo
Para criar um novo aplicativo (seu servidor) para a estrutura de
Loopback , vá para o diretório em que seu servidor estará localizado na linha de comandos, insira o comando
lb e responda a várias perguntas sobre o aplicativo, incluindo:
- nome do aplicativo (no meu caso, test_server)
- nome do diretório para o projeto (deixe em branco e, em seguida, uma pasta com o nome do projeto será criada nesse diretório)
- Versão LoopBack (selecione a versão atual)
- tipo de aplicativo (formalmente falando - um modelo de aplicativo. Escolha api-server)

Após concluir o processo de criação do aplicativo, vá para a pasta criada com os arquivos do aplicativo e tente executá-lo com o seguinte comando:
node .
O aplicativo é executado no endereço local:
localhost: 3000 / explorer . Além disso, o aplicativo já possui um modelo de usuário e várias funções REST.

Falando formalmente, seu servidor está pronto e processa com êxito solicitações locais. Você pode verificar a disponibilidade e operação do servidor usando o aplicativo
Postman ou seu aplicativo Android.
3. Modelos e relacionamentos
Em seguida, crie modelos com dados e os relacionamentos entre eles. Considere um exemplo simples de modelo e relacionamento: imagine que nosso aplicativo forneça feedback sobre os filmes. Você digita o nome do filme e deve receber todas as críticas para esse filme em particular. Assim, no caso mais primitivo, dois modelos devem ser armazenados no banco de dados:
Filme (possui campos: nome, ano) e
Revisão (autor, descrição). A relação entre os modelos é a seguinte, um filme pode ter muitas críticas.
Assim, uma solicitação REST para filmes terá um link
localhost: 3000 / api / Movies e um
host local: 3000 / api / Movies / {id} / Reviews para a lista de reviews
Crie estes dois modelos no servidor:
lb model
Responderemos às seguintes perguntas sobre o modelo:
- nome do modelo (por exemplo, filme)
- fonte de dados para conexão (selecione db (memória))
- classe base do modelo (selecione PersistedModel)
- mostre o modelo usando a API REST (Sim)
- formulário plural personalizado (deixe em branco)
- somente modelo geral ou servidor (selecione comum)
Agora o modelo foi criado e você precisa adicionar campos (para Movie, por exemplo, nome e ano):
- nome da propriedade (por exemplo, nome)
- tipo de propriedade (por exemplo, sequência)
- é obrigatório (sim)
- mostre o modelo usando a API REST (Sim)
- valor padrão (deixe em branco)

Depois de adicionar todas as propriedades, vendo a oferta para adicionar mais uma, basta pressionar “Enter”. Adicione também o segundo modelo.
Agora você precisa configurar o relacionamento entre eles. Escrevemos uma equipe e respondemos às perguntas:
lb relation
- selecione um modelo para criar um relacionamento (por exemplo, filme)
- tipo de conexão (escolha tem muitas (uma para muitas), pois um filme tem muitas críticas)
- escolha um modelo para o relacionamento (no nosso caso, Revisão)
- nome da comunicação (qualquer, escreverei comentários)
- chave de usuário (deixe em branco)
- modelo intermediário (não)
- Permitir aninhamento (não)
- desconectar a comunicação dos seguintes objetos conectados (Não)

Só isso. Agora inicie o servidor com o mesmo comando que antes e consulte
localhost: 3000 / explorer . Vemos que temos nossos modelos e podemos ver a relação entre eles através do
id .

4. Acesso remoto ao servidor
Agora, o acesso ao servidor é limitado à rede doméstica, o que não é muito conveniente ao testar a partir do telefone. Vamos tentar tornar seu servidor remoto. Para fazer isso, baixe o
ngrok , descompacte-o em qualquer lugar conveniente e inicie-o. Este programa foi projetado para criar um túnel para o seu
host local: 3000 , para criar acesso remoto a ele usando o link gerado. Digite o seguinte comando no ngrok:
npm install ngrok -g ngrok http 3000

Vimos que o programa criou um túnel e agora seu servidor está disponível no link fornecido. Lembre-se de que toda vez que você reiniciar o PC, o link no ngrok será alterado.
Conclusão
Foi apresentado acima uma descrição bastante aproximada e seca do processo de criação de um servidor NodeJs simples para testar seu aplicativo Android. Naturalmente, existem muitas nuances associadas, mesmo com os quatro passos que descrevi.
Além do que eu já descrevi, com apenas um comando, você pode alterar o nível de acesso à API e organizar a autenticação do usuário. Se alguém estiver interessado - faça perguntas nos comentários - eu responderei. O próprio framework possui
documentação bastante detalhada, incluindo os capítulos iniciais traduzidos para o russo (embora para a versão 2.0 com um conjunto diferente de comandos)
Sim, é primitivo, em algum lugar tecnicamente estúpido, em algum lugar simples demais, mas para uma pessoa que não está envolvida em tecnologias de servidor e precisa de uma solução rápida para testar suas tarefas principais, essa solução é o mais simples e rápida possível.