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 cada um desses serviços.

O segundo serviço, chamado de GetKeySession, irá retornar a chave criptografada do contexto atual selecionado. Esse serviço utiliza o verbo de requisição GET e pode ser útil caso faça uma customização onde não seja 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.

O endereço para acessar o serviço é o seguinte:

http://<nome_do_servidor_ou_ip>/rm/api/TOTVSEducacional/GetKeySession



Quando e como usar?

O serviço GetKeySession necessita da sessão em que o usuário está logado, por isso, só funcionará executando dentro do ambiente do portal. Por exemplo, se o cliente quiser customizar uma página do portal, adicionando um link para uma URL externa que seja necessário passar o KeySession:

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:


O primeiro 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.

O endereço para acessar o serviço é o seguinte:

http://<nome_do_servidor_ou_ip>/rm/api/TOTVSEducacional/GetSession?key=<chave_criptografada>

Como mostrado acima é obrigatório passar uma chave criptografada para o serviço retornar os dados. Essa chave pode ser obtida por meio de segundo serviço que será definido no próximo tópico.

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?

O serviço GetSession tem mais flexibilidade que o GetKeySession, podendo ser executado de fora do ambiente do portal pois não necessita da sessão do portal do aluno para funcionar. Sendo assim, um exemplo de uso é, de posse da KeySession, pode-se chamar o serviço GetSession repassando a KeySession para validar e ter mais informações do contexto/sessão do usuário:

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):

{
"data":[
{
"CODCOLIGADA":1,
"CODFILIAL":1,
"NOMEFILIAL":"Filial Belo Horizonte",
"CODTIPOCURSO":1,
"NOMETIPOCURSO":"Ensino Superior",
"RA":"ES-00177",
"NOMEALUNO":"Thiago Enzo Sales",
"CODUSUARIOPAI":null,
"NOMEPAI":null,
"CODUSUARIOMAE":null,
"NOMEMAE":null,
"CODUSUARIORACA":null,
"NOMERACA":null,
"CODUSUARIORESPFINANCEIRO":null,
"NOMERESPFINANCEIRO":null,
"CODUSUARIORESPCONTRATO":null,
"NOMERESPCONTRATO":null,
"IDHABILITACAOFILIAL":1,
"CODCURSO":"1-1",
"NOMECURSO":"DIREITO",
"CODHABILITACAO":"1",
"NOMEHABILITACAO":"DIREITO",
"NOMEMATRIZ":"Grade Curricular de Direito",
"NOMETURNO":"MANHÃ",
"IDPERLET":22,
"CODPERLET":"2019/1",
"DTINICIO":"2019-01-01T00:00:00",
"APRESENTACAO":"1",
"CODTURMA":null,
"PERIODO":null,
"SITMATHABILITACAO":"Matriculado",
"SITMATPERLET":"Pré-Matricula",
"CODUSUARIOALUNO":"ES-00177",
"GUID":"L\\FF\\09\\28B\\FDc\\DF\\A4\\21s\\14\\E75\\40\\E6p\\21\\E8\\D5i\\A8m\\C45\\02\\BDI\\2C\\A2\\5E\\C008\\AAn\\8B\\A9l\\23\\B0\\B2\\8A\\EA\\3E\\EE\\83u\\103\\2C\\B7n\\ABH\\A6\\FB\\05\\A1\\803\\91\\3D\\B4a\\FFI\\85\\CF\\7C\\08wD\\FF\\1C\\2E\\EA\\1A\\D7b\\BE\\B3iK\\2F\\FF\\DD7\\1B\\83\\B6\\1E\\A2\\C8\\B18VFn\\F1\\AE\\90E\\EA\\D1\\CE\\97\\DE\\5E\\B7\\1D\\00\\D5\\E2s\\08P\\14\\9F\\D5\\FE\\3F\\0C\\D0l\\EDw\\00\\A7\\7B\\C5\\9D\\8E\\E3\\2D\\D5\\2E\\F0\\B5\\A8\\27\\EC\\08\\DE"
}
],
"messages":[

],
"length":1,
"HttpStatusCode":200
}


Segue abaixo o código fonte da aplicação web Asp. Net MVC utilizada para os exemplos acima: