Escolar Documentos
Profissional Documentos
Cultura Documentos
Sumário
Apresentação
Etapas
Autenticação
Parâmetros
Requisições e Respostas
Sincronismo
Integração
Exemplo
Request
Response
Retorno de Imagem
Request
Response
Referência
-1-
Apresentação
O NFS permite a comunicação por API, sendo o sincronismo (entrada de dados NFS) e integração
(saída de dados do NFS) através de uma API usando JWT (Json Web Token).
Toda a lógica de negócio, no que se trata quais dados serão sincronizados (quais entidades vão vim
para o NFS) e integrados (quais entidades serão obtidas pelo sistema terceiro) é tratado com um analista da
Simova e depois é configurado a API.
A comunicação hoje sempre parte do lado do cliente, então quando é necessário enviar um dado para
o NFS o Sistema de Terceiro faz um request enviado as informações e a mesma coisa na hora que deseja
obter um dado, é feita uma chamada passando qual registro é buscado.
Etapas
Autenticação
A primeira etapa é a autenticação por um método POST para isso o usuário deve existir cadastrado
dentro do NFS, com isso é enviado usuário e senha, o retorno é um token que vai expirar em 15 minutos, se
antes desse tempo autenticar novamente é gerado um novo token, o antigo para de funcionar e também tem
o tempo 15 minutos.
-2-
A url será o domínio do cliente mais /nfs/api/v1/auth, supondo que o domínio seja
smartos.simova.cloud, no final a chamada será:
https://smartos.simova.cloud/nfs/api/v1/auth
Parâmetros
Os parâmetros para autenticação são enviados como um Json Object [ 1] de acordo com a tabela 1.
empresa Sim
Tabela 1
Requisições e Respostas
Request
Response
{
"type": "success",
"msg": "Token gerado com sucesso.",
"token":
"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJtZHMuaC5zaW1vdmEuY2xvdWQiLCJuYW1lIjo
-3-
ic2ltb3ZhLmFkbWluIiwiZW1haWwiOiJzaW1vdmEuYWRtaW5Ac2ltb3ZhLmNvbS5iciIsImZpbGlhbCI6IlB
BTE0iLCJsb2NhbCI6bnVsbCwiZXhwIjoiMjAyMC0wMy0wNiAwOToyNzowNyJ9.YLSMHvBRFv7JxREv
WyybmWmIrUf1vPBmksRTfs9xz+Q=",
"user": "simova.admin@simova.com.br"
}
Sincronismo
No sincronismo todas as chamadas são feitas por meio do método POST e no corpo é enviado um
Json Array [2].
Request
-4-
"Nome": "Cliente Teste",
"Tipo": "Física",
"CpfCnpj": "123456654654",
"NomeEndereco": "",
"Numero": "sn
"Complemento": "",
"Bairro": "",
"Cidade": "",
"UF": "SP"
}
]'
Response
[
{
"type": "success",
"msg": "Cadastro de Cliente inserido com sucesso",
"field": "",
"id": "6"
}
]
O retorno também é um json array, porque pode ser sincronizado mais de um dado de uma vez, logo é
enviado também a resposta para cada na seguinte estrutura.
-5-
Tabela 2.1 - Retorno Mensagem
Integração
Na integração é feito um GET a partir o Id que é enviado o sincronismo o mesmo deve ser retornado
quando quer se obter as informações de volta para o sistema de terceiro.
-6-
A url é /nfs/api/v1/integration/{entidade}
Exemplo
Supondo que foi feito um sincronismo de Ordem de Serviço, que é a entidade os, e o ID gerado no
SmartOS é 10.
Request
Response
[
{
"CodigoEmpresa": "Simova",
"FilialOS": "1",
"StatusOS": "Encerrada",
"IDStatusOS": "3",
"Equipamento": [
{
"Chassi": "312321312",
"Horimetro": "100",
"IdImagemChassi": "",
"IdImagemHorimetro": "1",
"DataLeitura": "2019-11-28 15:21:01"
}
-7-
],
"Dtac": [
{
"PecaCausadora": "1231312"
}
],
"AptHorasTrabalhadas": [
{
"SeqServico": "001-0002-0000",
"CodigoParada": "",
"DescParada": "",
"TipoApontamento": 1,
"CodigoEmpresaTec": "PALM",
"FlagServicoManual": "0",
"DataInicialApontamento": "2019-12-26 16:09:14",
"DataFinalApontamento": "2019-12-26 17:09:21",
"TempoApontado": "120",
"CodigoTecnico": "5"
},
{
"SeqServico": "",
"CodigoParada": "1",
"DescParada": "À DISPOSIÇÃO",
"TipoApontamento": 2,
"CodigoEmpresaTec": "Simova",
"FlagServicoManual": "1",
"DataInicialApontamento": "2019-12-26 16:09:14",
"DataFinalApontamento": "2019-12-26 17:09:21",
"TempoApontado": "120",
"CodigoTecnico": "5"
}
],
"PecasAplicacas": [
{
"CodigoPeca": "DIV538",
"QuantidadeAplicada": "0"
},
{
"CodigoPeca": "84565924",
"QuantidadeAplicada": "0"
}
]
}
-8-
]
Nisso é enviada todas informações da OS que estão configuradas para retorno, que geralmente é o
Apontamento de Horas Trabalhadas, Peças usadas na OS e etc. Um destaque especial é para quando
retorno é uma imagem que é enviado um id de sua entidade para não deixar o JSON de retorno grande.
Retorno de Imagem
Quando é configurado para retornar uma imagem em seu retorno é enviado o ID de onde ela existe e
sua chamada deve ser feita em uma requisição separada, por exemplo, no último exemplo de uma integração
de OS (lembrando que integração é quando a informação é gerada no SmartOS e obtida pelo Sistema
Terceiro) na chave Equipamento é enviado
"IdImagemChassi": "",
"IdImagemHorimetro": "1",
Isso quer dizer que tem uma imagem de horímetro com id igual a 1 e para obter essa imagem é feito
um novo request passando no body um json com o IdImagemHorimetro.
Request
Response
-9-
[
{
"ImagemChassi": "",
"ImagemHorimetro": "imagine_aqui_base64_imagem"
}
]
No caso não deve existir uma ImagemChassi, porém, se existir iria ser passado seu valor e no
retorno iria vir junto seu base64.
Referência
[1] Json Object - Na autenticação é usada a seguintes estrutura para enviar as informações:
{
“chave”: “valor”
}
[2] Json Array - No sincronismo de dados é usado a seguinte estrutura para enviar as informações:
[
{
“chave1”:”valor1”
},
{
“chave2”: “valor2”
}
]
- 10 -