Pular para o conteúdo principal

Arquitetura e Configuração do WCF

:::danger SERVIÇO LEGADO Documentação de referência do serviço legado. Não inicie novos projetos usando WCF. :::


1. Serviços e Endpoints​

Cada serviço publica dois endpoints: REST/JSON no endereço raiz e SOAP/XML em /soap.

ServiçoEndpoint REST/JSONEndpoint SOAPModo de instância
AereoNoSession.svc/AereoNoSession.svc/{Operacao}/AereoNoSession.svc/soapUma instância por chamada, sem sessão
Aereo.svc/Aereo.svc/{Operacao}/Aereo.svc/soapUma instância por sessão
Usuario.svc/Usuario.svc/{Operacao}/Usuario.svc/soapUma instância por sessão

AereoNoSession.svc e Aereo.svc compartilham o mesmo contrato de 51 operações. No AereoNoSession.svc o contrato não permite sessão, e nenhum estado é mantido entre duas chamadas.


2. Comportamento do Endpoint REST​

  • Todas as operações respondem a POST /{NomeDaOperacao}. Nenhuma operação utiliza GET.
  • O corpo é sem envelope: o JSON enviado e recebido é a própria representação do objeto de requisição/resposta, sem um nó externo com o nome da operação.
  • A página de ajuda do serviço fica em /{Servico}.svc/help.
  • O formato da resposta é negociado automaticamente a partir do cabeçalho da requisição. Envie sempre Content-Type: application/json e Accept: application/json para receber JSON.
  • Nomes de campos são sensíveis a maiúsculas e minúsculas e seguem exatamente os nomes das tabelas desta documentação.

3. Comportamento do Endpoint SOAP​

  • Endereço: /{Servico}.svc/soap.
  • Mensagens SOAP/XML sobre HTTP, com os mesmos contratos de dados do endpoint REST.
  • O serviço está configurado para publicar metadados (WSDL). A disponibilidade do WSDL em cada ambiente deve ser confirmada com a Wooba.

4. Timeouts​

Na configuração atual, tanto o endpoint REST quanto o SOAP trabalham com limite de 2 minutos para abertura, envio e recebimento. Configure no cliente um timeout de pelo menos 120 segundos, especialmente para Disponibilidade, que pode consultar vários fornecedores.

No Aereo.svc, a sessão HTTP expira após 10 minutos de inatividade.


5. Estrutura Comum das Requisições​

Todas as requisições das operações aéreas (exceto Autenticar e AutenticarComUsuario) herdam os campos abaixo:

CampoTipoDescrição
LoginStringLogin da credencial do webservice.
SenhaStringSenha da credencial do webservice.
ClienteIdInteger (opcional)Id do cliente corporativo.
AutenticacaoUsuarioObjeto (opcional)Dados de autenticação do usuário da agência (veja Autenticação).
tokenStringToken obtido em Autenticar, para uso com sessão (Aereo.svc).
transacaoIdStringIdentificador livre enviado pelo cliente, gravado nos registros de log para correlação de chamadas.

:::caution Atenção à caixa dos nomes Os campos token e transacaoId são escritos com a primeira letra minúscula. Os demais campos iniciam em maiúscula. :::

6. Estrutura Comum das Respostas​

CampoTipoDescrição
DataString /Date(...)/Data e hora em que a resposta foi gerada.
DataVersaoStringData da versão do serviço, no formato dd/MM/yyyy.
SessaoExpiradaBooleantrue quando a sessão/token informado expirou ou não foi informado junto com as credenciais.
ExceptionObjeto ou nullPreenchido em caso de erro de negócio, com o campo Message.

Erros de negócio e de autenticação das operações aéreas retornam no objeto Exception, com o texto do erro em Exception.Message. As exceções às regras acima são:

  • Autenticar retorna uma string: o token em caso de sucesso, ou a mensagem de erro.
  • AutenticarComUsuario retorna os erros no array Erros.
  • Desconectar não possui parâmetros nem corpo de resposta.