Páginas filhas
  • WebAPI - Documentação do Swagger e consumo de API's

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

Documentação do Swagger e consumo de API's


O objetivo deste documento é orientar o usuário quanto à configuração do ambiente para visualizar documentação do Swagger e permitir testes nas APIs existentes.

Vamos exemplificar como configurar o ambiente corretamente para utilização dos serviços e como realizar a segurança e autenticação através das APIs, além de exemplos de códigos utilizando os serviços disponíveis.


Expandir
titleConfiguração do ambiente

Pré-Requisitos: Portal RM instalado.


Para acessar o Swagger, é necessário acessar o link: "http://<servidor>:<portaFrameHTML>/swagger/ui/index"

(Exemplo: http://localhost:8080/swagger/ui/index).


Para verificar a porta, acesse, através do IIS, o Website "FrameHTML", que é gerado automaticamente quando realizada a instalação do Portal RM:



Clique com o botão direito do mouse no Website "FrameHTML" e, em seguida, clique na opção "Editar ligações...". Conforme imagem abaixo, a porta seria a 8080, e o link ficaria da seguinte forma "http://localhost:8080/swagger/ui/index".



Ao tentar acessar o link direto do Swagger, podem ocorrer erros conforme imagens abaixo:



Para ajustá-los, é necessário realizar os seguintes procedimentos:

  • Para o erro da primeira imagem:
    • Dentro do servidor, abra o diretório "X:\totvs\CorporeRM\FrameHTML\bin", localize o arquivo RM.WebAPI.xml e altere o nome para RM.WebAPI.Documentation.xml.
  • Para o erro da segunda imagem:
    • No mesmo diretório, localize também o arquivo RM.Fop.WebApi.dll e apague-o da pasta.



Arquivo Web.Config


No diretório "X:\totvs\CorporeRM\FrameHTML", localize o arquivo de configurações "Web.Config". Certifique-se que a tag "owin:AutomaticAppStartup " está com o valor "true":

Bloco de código
languagexml
<add key="owin:AutomaticAppStartup" value="true" />
Expandir
titleSwagger - Visualizando a Documentação

Todos os serviços disponíveis no RM são agrupados e listados nesta ferramenta, que visa auxiliar na manutenção e documentação de APIs REST.


Ao acessar o Swagger, são listados todos os serviços disponíveis, com a descrição do serviço, parâmetros e urls:



Expandir
titleSegurança e Autenticação

As APIs disponibilizadas no Swagger utilizam o Basic Authentication, que é o sistema de autenticação mais comum no protocolo HTTP.
Na tela de parâmetros da Lib DN - pré-requisito para todas as customizações - existe um processo que permite gerar o Token de forma simples.


Para instruções e exemplos de geração, acesse o link Manual Operacional da Customização - LIB DN.


O Token deve ser enviado em todas as requisições no cabeçalho HTTP "Authorization".

Expandir
titleExemplos de consumo das APIsAPI's

Seguem exemplos do consumo de um serviço customizado disponibilizado no Swagger.


Expandir
titleMétodo "para Executar Consultas SQL"

Método que realiza a execução de consultas SQL cadastradas no RM e retorna o resultado em JSON.


Tipo: GET

Nome: ExecutaConsultaSQL

Parâmetros:

  • codColigada (Código da Coligada da Sentença SQL)
  • codSentenca (Código da Sentença)
  • parameters (Parâmetros que são utilizados na consulta)
  • codSistema (Código do sistema onde a consulta foi cadastrada)


Visualização do método no Swagger:


Requisição no Postman


No Postman, devemos adicionar duas informações no cabeçalho (Header) da requisição: o Token (Authorization) e o Content-Type, para informar o tipo de dados utilizados, que, no caso das APIs da customização, é o JSON.


Neste exemplo, vamos executar uma consulta que retorna os Municípios (Tabela GMUNICIPIO), sendo passado como parâmetro o Estado (CODETD).


Exemplo do retorno no Postman:


Exemplo das requisições em algumas linguagens de programação:


C# (Utilizando a biblioteca RestSharp)

Bloco de código
languagec#
firstline1
var client = new RestClient("http://localhost:8080/rm/api/TOTVSCustomizacao/ConsultasSQL/ExecutaConsultaSQL?codColigada=2&codSentenca=CST.CONSULTA01&parameters=CODETD=MG&codSistema=A");
var request = new RestRequest(Method.GET);
request.AddHeader("Content-Type", "application/json");
request.AddHeader("Authorization", "Basic bWVzdHJlOnRvdHZz");
IRestResponse response = client.Execute(request);

PHP

Bloco de código
languagephp
firstline1
<?php

$request = new HttpRequest();
$request->setUrl('http://localhost:8080/rm/api/TOTVSCustomizacao/ConsultasSQL/ExecutaConsultaSQL');
$request->setMethod(HTTP_METH_GET);

$request->setQueryData(array(
  'codColigada' => '2',
  'codSentenca' => 'CST.CONSULTA01',
  'parameters' => 'CODETD=MG',
  'codSistema' => 'A'
));

$request->setHeaders(array(
  'Content-Type' => 'application/json',
  'Authorization' => 'Basic bWVzdHJlOnRvdHZz'
));

try {
  $response = $request->send();

  echo $response->getBody();
} catch (HttpException $ex) {
  echo $ex;
}

NodeJS (Utilizando biblioteca Request)

Bloco de código
languagejs
firstline1
var request = require("request");

var options = { method: 'GET',
  url: 'http://localhost:8080/rm/api/TOTVSCustomizacao/ConsultasSQL/ExecutaConsultaSQL',
  qs: 
   { codColigada: '2',
     codSentenca: 'CST.CONSULTA01',
     parameters: 'CODETD=MG',
     codSistema: 'A' },
  headers: 
   { 'Content-Type': 'application/json',
     Authorization: 'Basic bWVzdHJlOnRvdHZz' } };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
Informações
iconfalse
Informações
iconfalse

Produto: Customizações

Informações
iconfalse

Versão: 12.1.17 ou Superiores

Data: 

Informações
iconfalse
titleAutores

Ana Carolina Eleutério Abras

Pedro Antonio Silva Barroso

Usuário desconhecido (thiago.chagas)