Foram desenvolvidos dois serviços REST para que o cliente possa customizar sua aplicação de acordo com o contexto educacional atual do portal do aluno. Abaixo detalharemos cada um desses serviços.
O primeiro serviço chamado de GetKeySession, irá retornar uma chave criptografada do contexto atual do usuário no portal do aluno e deverá ser usada como parâmetro do segundo serviço (GetSession). O serviço GetKeySession utiliza o verbo de requisição GET e pode ser útil quando for necessário uma customização que não possa ser feita através de um cadastro de Url Externa de Globais e necessite das informações do contexto do usuário logado no portal.
http://<nome_do_servidor_ou_ip>/rm/api/TOTVSEducacional/GetKeySession |
O serviço GetKeySession necessita da sessão em que o usuário está logado, por isso, só funcionará se for executado dentro do ambiente do portal. |
Exemplo de uma requisição do endpoint GetKeySession através do Swagger:
O segundo serviço chamado de GetSession, irá retornar um objeto Json com os dados de contexto do aluno. Esse serviço utiliza o verbo de requisição GET e recebe como parâmetro uma chave criptografada de nome key obtida pelo primeiro serviço GetKeySession.
http://<nome_do_servidor_ou_ip>/rm/api/TOTVSEducacional/GetSession?key=<chave_criptografada> |
O alias do banco de dados utilizado para consultar o contexto do aluno no serviço GetSession é o alias parametrizado no arquivo ...\FrameHTML\Web.Config, no parâmetro ServiceAlias. |
É obrigatório passar uma chave criptografada para que este serviço retorne os dados. Essa chave é obtida por meio do serviço GetKeySession. É obrigatório configurar a TAG ServiceAlias no arquivo Web.config da pasta FrameHTML para que este serviço funcione corretamente. O serviço GetSession deve ser executado de fora do ambiente do portal. |
Modelo do JSON que é retornado pelo GetSession (lembrando que um dado pode ou não estar preenchido baseado no usuário logado): { ], |
Para isso, utilizando a documentação de customização, podemos alterar esta tela e adicionar um botão que irá redirecionar para a URL de uma aplicação externa. No código abaixo, no evento do click deste botão, o serviço GetKeySession é chamado para recuperar a KeySession e, posteriormente, essa key será repassada para o aplicativo externo via QueryString.
<button class="btn btn-default" ng-click="controller.abrirAppExterno()"> Abrir aplicativo externo </button> |
self.abrirAppExterno = abrirAppExterno; function abrirAppExterno() { $.ajax({ url: "http://localhost:8025/rm/api/TOTVSEducacional/GetKeySession", crossDomain: true, context: document.body, type: "get", xhrFields: {withCredentials: true} }).done(function(data){ var url = "http://localhost/testeintegracao/TesteURLExterna?key=" + data; window.open(url, '_blank'); }); } |
Caso a instalação esteja na versão superior a versão 12.1.27, o caminho da instalação deve ser: url: "http://localhost/FrameHTML/rm/api/TOTVSEducacional/GetKeySession",
|
Funcionamento do código de exemplo acima:
Para isto, basta o Cliente realizar o cadastro da URL externa informando a URL do aplicativo externo que receberá o contexto.
Funcionamento:
Para reproduzir os exemplos basta extrair os fontes em um diretório e criar um aplicativo web. Isto pode ser feito no Gerenciador de Serviços de Informações da Internet (IIS), por exemplo. No próprio aplicativo já estão descritas as instruções de uso. A porta padrão utilizada pelo serviço GetSession é a porta 8080. |
Aplicação de exemplo para acesso ao Contexto do portal do aluno (ASP.NET)