Execução de serviço externo

Qualquer sistema que deseja consumir um WebService que está sendo disponibilizado através do serviço externo, basta seguir as orientações abaixo:


Os serviços externos devem ser configurado por um administrador do sistema no MentorWeb, seguindo as orientações conforme descrito na parte de cadastro de serviço externo.

Fluxo

Segurança

Para realizar a execução do serviço externo é necessário possuir um token de integração esse token é gerado a partir da chamada de outro webservice, conforme exemplo abaixo:

  • Geração do token da Edusoft:
    • Realizar requisição GET passando no cabeçalho (header) o usuário e senha (informadas no cadastro do serviço externo) para o endereço:
      http:/ / dominio / MentorWebG5 /rest/servicoexterno/ token / nomeServico

      Http: Se no cadastro obriga HTTPS, deve-se utilizar Https.
      Domínio: Domínio da aplicação
      MentorWebG5: nome do sistema MentorWebG5 da aplicação.
      Token: representa que este link é para geração do Token
      nomeServico: nome do serviço definido no cadastro de serviço externo

      Este token possui validade de 30 segundos e só pode ser utilizado uma vez, e é exclusivo para este nome de serviço.
      Ex: Solicitação de token para o serviço de disciplinas matriculadas em php e java
         Exemplo em PHP
           $request = new HttpRequest();
           $request->setUrl('http://dominio/MentorWebG5/rest/servicoexterno/token/disciplinaMatriculada');
           $request->setMethod(HTTP_METH_GET);
 
           $request->setHeaders(array(
             'senha' => '1',
             'usuario' => 'edu'
           ));
           try {
             $response = $request->send();
             echo $response->getBody();
           } catch (HttpException $ex) {
             echo $ex;
           }
         Exemplo em Java
           OkHttpClient client = new OkHttpClient();
 
           Request request = new Request.Builder()
             .url("http://dominio/MentorWebG5/rest/servicoexterno/token/disciplinaMatriculada")
             .get()
             .addHeader("usuario", "edu")
             .addHeader("senha", "1")
             .build();
 
           Response response = client.newCall(request).execute();

O retorno da requisição para o token será sempre uma “string” com o valor do token.

  • Executando o serviço externo:
    • Realizar requisição POST passado no cabeçalho o token adquirido no passo anterior e no corpo(body) os parâmetros cadastrados no serviço no formato json. O endereço a ser chamado:
      http:/ / dominio / MentorWebG5 /rest/servicoexterno/ execute / nomeServico

      Http: Se no cadastro obriga HTTPS, deve-se utilizar Https.
      Domínio: Domínio da aplicação
      MentorWebG5: nome do sistema MentorWebG5 da aplicação.
      Execute: representa que este link é para executar o serviço.
      nomeServico: nome do serviço definido no cadastro de serviço externo

      Ex: Solicitação do serviço de disciplinas matriculadas em php e java
         Exemplo em PHP:
           $request = new HttpRequest();
           $request->setUrl('http://dominio/MentorWebG5/rest/servicoexterno/execute/disciplinaMatriculada');
           $request->setMethod(HTTP_METH_POST);
 
           $request->setHeaders(array(
             'token' => '0505d673d084e1fb7ebc6b2e109f698ba09269f5',
             'content-type' => 'application/json'
           ));
 
           $request->setBody('{"ingressoId":99,"periodoLetivoId":1}');
 
           try {
             $response = $request->send();
             echo $response->getBody();
           } catch (HttpException $ex) {
             echo $ex;
           }
         Exemplo em Java:
           OkHttpClient client = new OkHttpClient();
 
           MediaType mediaType = MediaType.parse("application/json");
           RequestBody body = RequestBody.create(mediaType, "{\"ingressoId\":99,\"periodoLetivoId\":1}");
           Request request = new Request.Builder()
             .url("http://dominio/MentorWeb/rest/servicoexterno/execute/disciplinaMatriculada")
             .post(body)
             .addHeader("content-type", "application/json")
             .addHeader("token", "0505d673d084e1fb7ebc6b2e109f698ba09269f5")
             .build();
 
           Response response = client.newCall(request).execute();

Observação: Toda requisição ao serviço externo gera log com informações do usuário, data/hora, ip e parâmetros.
O retorno do serviço, sempre será em formato “json”. Ele varia conforme cada serviço. Mas, todos os serviços tem como retorno o campo “Resultado”. Este campo, pode estar dentro de uma coleção ou não. Isso é específico de cada serviço.
Abaixo um exemplo de retorno com sucesso (dentro de uma coleção):

Abaixo um exemplo de retorno com erro (fora de uma coleção):

  • (edição externa)