Histórico da Página
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 um detalhe de detalharemos cada um desses serviços.
GetKeySession – Retorna a chave para obter o contexto
O segundo primeiro serviço , chamado de GetKeySession, irá retornar a uma chave criptografada do contexto atual selecionado. Esse serviço 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 caso faça quando for necessário uma customização onde não seja que não possa ser feita através de um cadastro de Url Externa de Globais .
O cliente pode, por exemplo, obter a chave por meio deste serviço e posteriormente chamar o primeiro serviço para obter os dados do contexto atual.
e necessite das informações do contexto do usuário logado no portal.
Dica | ||
---|---|---|
|
...
| |
http://<nome_do_servidor_ou_ip>/rm/api/TOTVSEducacional/GetKeySession |
Informações |
---|
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:
Utilizando a documentação de customização, na tela de ocorrência do novo portal foi adicionado um botão que irá redirecionar para uma URL externa e passará via QueryString o KeySession, para isso no método de click do botão o serviço GetKeySession é chamado para recuperar a KeySession, essa key é repassada para uma URL externa:
Funcionamento do código de exemplo acima:
GetSession – Retorna o contexto atual do aluno
O primeiro segundo serviço , chamado de GetSession, irá retornar um objeto json 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.
Dica | ||
---|---|---|
|
...
| |
http://<nome_do_servidor_ou_ip>/rm/api/TOTVSEducacional/GetSession?key=<chave_criptografada> |
...
Aviso | ||
---|---|---|
| ||
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. |
Informações |
---|
É |
...
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 |
Ao criar uma Url Externa, no cadastro de globais, essa chave é passada como parâmetro de Url (query string), como por exemplo:
http://meudominio.com.br/?key=<chave_criptografada>
Como e quando usar?
...
ser executado de fora do ambiente do portal |
...
. |
...
Informações |
---|
No exemplo, foi criado um sistema Web em Asp.Net MVC em que existe uma Action que recebe a key, esta action chama o serviço GetSession e preenche na view de uma forma amigável os dados do contexto recuperado.
Funcionamento:
...
Modelo do JSON que é retornado pelo GetSession (lembrando que um dado pode ou não estar preenchido baseado no usuário logado): { ], |
...
Exemplo 1: Cliente precisa customizar a tela de ocorrência do portal adicionando um link para uma aplicação externa.
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.
Bloco de código | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
<button
class="btn btn-default"
ng-click="controller.abrirAppExterno()">
Abrir aplicativo externo
</button> |
Bloco de código | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
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');
});
} |
Aviso | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||
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:
Exemplo 2: Cliente precisa adicionar uma URL externa ao menu do portal do aluno que redireciona para uma aplicativo externo passando o contexto.
Para isto, basta o Cliente realizar o cadastro da URL externa informando a URL do aplicativo externo que receberá o contexto.
Funcionamento:
Informações |
---|
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)
View file | ||||
---|---|---|---|---|
|
Informações | |||
---|---|---|---|
| |||
GetKeySession - Retornar e-mail do Aluno Implementado a funcionalidade para que ao utilizar a API "GetSession", para retornar os dados do Contexto do Aluno, foi incluído também a informação do e-mail do aluno ( caso essa informações esteja preenchida em seu cadastro).
|
...
|
...
|