Projetos Cronapp de Microsserviços oferecem uma abordagem simplificada, permitindo aos usuários desenvolver os serviços necessários para suas aplicações com autonomia. Esses projetos não possuem interfaces clientes e não apresentam recursos para autenticação própria. Como veremos nesse tutorial, para disponibilizar recursos privados em um projeto de microsserviços é preciso integrá-lo com outras aplicações que gerencie a autenticação, como exemplificado na imagem abaixo.


Figura 1 - Fluxo de integração entre projetos

Pré-requisitos

Antes de começar a seguir os passos do tutorial é preciso ter certeza de que se tem um ambiente minimamente preparado para reproduzir o exemplo. Abaixo estão os principais requisitos de que se precisa entendimento.

  1. Criar projeto do tipo web e mobile. Caso haja dúvidas de como criar esse tipo de projeto, acesse a documentação Criar projeto.
  2. Criar projeto do tipo microsserviços. Caso haja dúvidas de como criar esse tipo de projeto, acesse a documentação Projeto de Microsserviços.
  3. Criar blocos de programação. Caso haja dúvidas, acesse a documentação Bloco de programação.
  4. Criar fonte de dados. Caso haja dúvidas, acesse a documentação Fonte de Dados.

Passos

Neste tutorial, apresentaremos como integrar projetos Cronapp para disponibilizar requisições autenticadas em projetos de microsserviços. Para isso, vamos utilizar três projetos Cronapp:

  1. Projeto de autenticação, que será integrado ao projeto de Microsserviços com o objetivo de gerar uma camada de autenticação aos recursos.
  2. Projeto Microsserviço, que irá fornecer os recursos.
  3. Projeto cliente, ou qualquer ferramenta que faça requisições REST aos serviços gerados pelo Microsserviços.

Projeto para autenticação

O projeto utilizado para autenticação, do tipo web e mobile, será responsável por gerenciar a autenticação dos usuários que desejam acessar os serviços disponibilizados pelo projeto de microsserviços. Para fazer a integração desses dois projetos, será preciso copiar o Token (destaque 1 da Figura 2), localizado na subaba "Autenticação e Segurança" nas Configurações do projeto, e adicioná-lo no mesmo campo Token nas Configurações do projeto de microsserviços. Dessa forma, os usuários autenticados no projeto de autenticação também poderão acessar os recursos do projeto de microsserviços de acordo com suas permissões de segurança.


Figura 2 - Janela de Configurações do Projeto


Após finalizar a criação, execute o projeto, faça login na aplicação (usuário/senha: admin/admin) e copie o token do usuário logado. Esse token será utilizado para a autenticação do acesso aos recursos dos projetos de microsserviços. Para visualizá-lo, acesse a ferramenta de desenvolvedor do navegador, na aba Application (destaque 1 da Figura 2.1) clique em Cookies (2) e, por fim, em AuthToken (3).

Estamos obtendo o token de autenticação manualmente com o objetivo de reduzir e simplificar os passos nesse tutorial. Em uma situação real, em que também fosse usado um projeto Cronapp para autenticação, esse token deveria ser obtido a partir do recurso /auth, veja mais detalhes na documentação Swagger - OpenAPI.


Figura 2.1 - Token do usuário

Projeto de Microsserviços

O projeto de microsserviços será responsável por disponibilizar os serviços que serão consumidos pelo cliente. Como informado anteriormente, esse projeto deverá receber o token do projeto de autenticação (Figura 2) nas Configurações do projeto. Além disso, é fundamental que os Permissionáveis utilizados no projeto de microsserviços sejam os mesmo do projeto de autenticação. Para configurar os permissionáveis, acesse a ferramenta de Permissões de segurança.

Bloco de programação

Um dos serviços disponibilizados por esse projeto exemplo, será por meio de uma função de bloco de programação, conforme mostrado na imagem abaixo, crie uma função de Bloco de programação e inclua algum retorno. Para acessar as configurações do bloco, clique no ícone de engrenagem (destaque 1 da Figura 2.2) do editor de blockly. Na janela exibida, certifique-se de que todas as opções estejam configuradas como "Autenticado" no campo Segurança, garantindo que somente usuários autenticados tenham acesso a este serviço. Ainda na janela de configuração, na área  Endereço REST, certifique-se que a função esteja configurada para o verbo HTTP "GET" e, no campo ao lado, o endpoint da função pode ser utilizado para requisições externas. Para mais informações de configuração, acesse o tópico "Propriedades do Blockly" da documentação Bloco de programação


Figura 2.2 - Função de bloco de programação do projeto de microsserviços

Fonte de dados

Outro serviço disponibilizado será por meio da Fonte de dados. Para este exemplo, foi criada uma classe "Pessoa" no Diagrama de dados e gerada a camada de persistência e, a partir dessa classe, a Fonte de dados "Registro". Em seguida, na aba Ações (destaque 1 da Figura 2.3), no campo "Segurança" (ícone de cadeado), selecionamos o permissionável "Autenticado" para todas as ações, garantindo que apenas usuários autenticados tenham permissão para acessar esse recurso. Além disso, habilitamos a opção "Swagger/Open API" (2). O endpoint (3) da fonte de dados, assim como no bloco de programação, pode ser utilizado em requisições externas. Para mais informações de configuração, acesse o tópico "Como configurar" da documentação do Swagger.


Figura 2.3 - Fonte de dados do projeto de microsserviços


Por fim, após as configurações, execute o projeto e abra a aplicação a partir da opção "Arquivo OpenAPI", o link da página exibida será utilizado nos próximos passos do tutorial.

Projeto Cliente

Este projeto do tipo web e mobile será utilizado para consumir os serviços REST disponibilizados pelo projeto de microsserviços. Neste tutorial, utilizaremos a funcionalidade Importar OpenAPI/Swagger para importar os recursos criados anteriormente no projeto de microsserviços. Consulte a documentação correspondente para mais detalhes de importação. No entanto, é importante destacar que os serviços também podem ser consumidos de outras formas, utilizando os endpoints configurados.

Após importar os recursos, foi criado o bloco de programação da imagem abaixo. Para mais informações de configuração, consulte o tópico "Blocos de programação" da documentação Importar OpenAPI/Swagger. Além disso, foi criada uma view para executar a função do bloco.


Figura 2.4 - Bloco de programação configurado utilizando os blocos importados do projeto de microsserviços


Em seguida, criamos uma fonte de dados a partir da fonte importada do projeto de microsserviços. Visto que o recurso está disponível para acesso apenas de usuários autenticados, na aba "Cabeçalhos" da Fonte de dados criada, adicionamos o cabeçalho X-AUTH-TOKEN (destaque 1 da Figura 2.5) e passamos o token do usuário obtido no projeto de autenticação. Além disso, na aba "Campos" (2), no campo id, após a caixa de seleção "Expressão", selecionamos a expressão "guid". Após isso criamos um formulário CRUD para visualizar os dados. Para mais informações de configuração, consulte o tópico "Fonte de dados" da documentação Importar OpenAPI/Swagger.


Figura 2.5 - Fonte de dados configurada no projeto cliente

Executando o projeto

Após concluir as configurações, execute o projeto cliente. A Figura 2.6 apresenta a execução da função do bloco de programação da Figura 2.4. Na parte superior da imagem, é mostrada a execução da função utilizando um token de um usuário não autorizado. Já na parte inferior, é apresentada a execução com um usuário autenticado. Observe que a mensagem exibida é a mesma do retorno da função do projeto de microsserviços (Figura 2.2).


Figura 2.6 - Execução da função do bloco de programação da Figura 2.4


Na Figura 2.7, é exibido o formulário gerado a partir da Fonte de dados mostrada na Figura 2.5. Neste formulário, é possível visualizar os dados resultantes da configuração realizada.


Figura 2.7 - Visualização dos registros da Fonte de dados


Nesta página