Administração do sistema

API REST

RT.RQ-001

Descrição

O acesso ao sistema pode ser realizado através de sua API REST de alto nível.
Este documento descreve os procedimentos necessários para preparar o ambiente para realizar os acessos através de sua API REST.

Fluxo normal

Introdução

A API REST permite a integração do sistema ELIGO com outros sistemas permitindo permitindo que as operações realizadas normalmente através de interfaces Web sejam também acessíveis através de web-services.

Estes serviços são disponibilizados com o estilo arquitetural REST, e fornecem interoperabilidade entre sistemas de computadores na Internet através de mensagens JSON.

Os serviços que são disponibilizados são as operações das interfaces assim como as interfaces tradicionais que são disponibilizadas para usuários humanos. Na verdade, a API pode disponibilizar exatamente as mesmas operações que são realizadas por usuários humanos. A única diferença é que a interface Web é substituída por um protocolo de comunicação.

Requisições

Para cada objeto disponível na API, o modelo de requisições seguem o seguinte padrão:

Criar um novo objeto
POST .../objeto

Consultar um objeto específico
GET .../objeto/{id}

Excluir um objeto específico
DELETE .../objeto/{id}

Listar objetos
GET .../objeto?ofsset=0&limit=100&q=expressao

Alterar um objeto
PUT .../objeto/{id}

Disparar uma ação específica em um objeto. As ações variam de objeto para objeto e são normalmente definidas como verbos específicos como cancelar, emitir, renovar, etc.
POST .../objeto/{id}/{acao}

Respostas

200 - Sucesso
201 - Criado (na inclusão de um registro)
204 - Sem conteúdo
400 - Indica que o objeto informado não existe.
401 - Sem autorização ou autorização inválida.
403 - Acesso negado
404 - Registro informado não existe

Todas as respostas com erro também são acompanhadas por um JSON contendo um atributo "error" com uma mensagem auxiliar.

Exemplo:
{
   "status": "404"
   "message": "Não foi encontrado um registro com ID = 4454955700 na entidade CONTRATO.CONTRATOS_SERVICOS",
}

Autenticação

Cada sistema que acessar o ELIGO deverá ter um usuário específico para uso pela API. O cadastramento deste usuário é realizado pela interface Usuários, exatamente igual ao realizado para usuários humanos.

Da mesma forma com que é realizado para usuários humanos, o cadastramento deste usuário também irá definir quais operações de quais interfaces (recursos) estarão disponíveis para este usuário.

Como já é de conhecimento, a relação destes recursos é definida através de funções Funções de usuários. Sugere-se criar uma função específica para grupos de usuários que devem ter determinados recursos disponíveis.

A método de autenticação dos serviços utiliza o modelo "Bearer" onde o token será obtido através de um processo de login. De posse deste login, os acessos deverão conter o header abaixo:
Authorization: Bearer <token>

Para obter este token, deve-se gerar 1 pela interface Tokens de acesso

Convenções

Todos os atributos de data devem ser informados no formato YYYY-MM-DD.

Todos os atributos de valor que precisam ser informados com casas decimais devem ser informados com o "." (ponto) como separador decimal e sem uso de separador de milhar.

Pessoas

Métodos disponíveis:
/POST .../pessoas
/GET .../pessoas/{id}
/PUT .../pessoas/{id}

Atributos

[fields:PESSOA.WS_PESSOAS.INSERT]

Contratos usuários

Métodos disponíveis:
/POST .../contratos_usuarios - Cria um novo contrato
/GET .../contratos_usuarios/{id} - Consulta um contrato
/POST .../contratos_usuarios/{id}/cancelar - Cancela um contrato

Atributos

[fields:SGPRC_USUARIO.WS_CONTRATOS_USUARIOS.INSERT]