Autores
-
Elienai Neves
Analista de Sistema
E-mail: eneves@eprofessionalti.com
Fone: (13) 99708-3695
Skype: elienai.neves
-
Eduardo Valeriano
Analista de Sistema
E-mail: eduardo.valeriano@eprofessionalti.com
Fone: (13) 99130-4484
Skype: eduvaleriano_2
-
Daniel de Azevedo Figueiredo
Analista de Sistema
E-mail: daniel@eprofessionalti.com
Fone: (11) 97153-5958
Skype: daf_design
Sobre este Documento
O objetivo deste documento é explicar como se dará o acesso a API desenvolvida pela eProfessionalTI, para fazer
a integração dos movimentos de entrada e saída dos contêineres dos terminais de vazios para o exportador, com o
Portal da Maersk.
Breve descrição do projeto
Durante as definições do projeto do Portal da Maersk, verificou-se a necessidade de os Terminais informarem
alguns dados no momento da entrada e saída do contêiner. Hoje esses dados estão sendo informados manualmente
direto no portal, a proposta deste projeto é a disponibilização de uma API, para que os parceiros da Maersk
tenham a possibilidade de informar esses dados de forma automática e em tempo real.
Características Técnicas
A Web API que será disponibilizada, foi desenvolvida na plataforma Microsoft, usando a linguagem C# .Net, a
camada de persistência utiliza o Entity Framework. Para este projeto foi adotada a arquitetura MVC (Model View
Control). A mensageria prevista na integração, usará como padrão o formato JSON, formato este já consagrado e em
uso em diversas corporações.
Autenticação na API
I - Requisição
O meio de autenticação escolhido para a API é o Digest, onde primeiramente o usuário obtém um Token, mediante ao
envio de Usuário e Senha. Caso o usuário e senha fornecidos sejam válidos, a API
retornará um Token, que deverá
ser usado no próximo acesso a API, para o método desejado. Vale lembrar que o Token terá validade de um minuto,
após este período um novo Token deverá ser obtido para a permissão de acesso.
Para obter o Token, o programa cliente deve acessar as seguintes URLs:
• Teste - "http://brmaerskdev.eprofessionalti.com/api/portal/integra/getaccess"
• Produção - "https://www.portalagendamentos.com.br/api/portal/integra/getaccess"
Os métodos em questão, são posts e o seguinte JSON deve ser enviado:
JSON para a requisição:
Onde:
DEPOT recebe o CNPJ em questão
LOGIN recebe o login fornecido pela Eprofessional
SENHA recebe a senha fornecida pela Eprofessional
II - Retorno
O retorno terá o atributo SUCCESS para retornar Verdadeiro ou Falso, caso o retorno seja Falso, o
Atributo
ERROR, trará a descrição do erro, caso contrário ele será vazio. Um terceiro atributo é o
OBJECT, este atributo
é um dado complexo, ou seja, um objeto que contém outros dois atributos o CNONCE que é uma string
que será usada
na autenticação Digest e o outro é o TOKEN, que será a chave usada para o acesso ao método desejado
da API.
SAVEGATEIN
I - Requisição
Caso a autenticação de usuário e senha tenha sido feita com sucesso, o sistema cliente deverá usar os dados
retornados (CNONCE e TOKEN) para acessar o método Gatein. O Acesso a este método dever
ser feito através das
seguintes URLs:
• Teste - "http://brmaerskdev.eprofessionalti.com/api/portal/integra/savegatein"
• Produção - "https://www.portalagendamentos.com.br/api/portal/integra/savegatein"
Aos métodos em questão, são posts e o seguinte JSON deve ser enviado:
JSON para a requisição:
Onde:
DEPOT - Recebe o CNPJ do Depot
TOKEN – Recebe o Token obtido no método getaccess
CNONCE – Recebe o CNONCE obtido no método getaccess
TICKETS – Um objeto que recebe os dados principais do agendamento feito no Portal da Maersk, ele
pode conter
um ou vários agendamentos conforme abaixo:
• DATA – Data do agendamento;
• MOTORISTA - Nome do Motorista;
• PLACA – Placa do caminhão;
• CPF – CPF do motorista.
II - Retorno
O retorno será um objeto (Dictionary(String,Object)), caso seja um retorno “TRUE”, o Atributo
NONCE, voltará
preenchido com uma string que deverá ser usada para consultar os status do agendamentos enviados.
Retorno do método savegatein:
SEARCHGATEIN
I - Requisição
Caso a autenticação de usuário e senha tenha sido feita com sucesso, o sistema cliente deverá usar os dados
retornados (CNONCE e TOKEN) para acessar o método searchgatein.
O método savegatein é um método assíncrono, portanto, o retorno do processamento da requisição deve
ser obtido
em outro método usando o NONCE retornado, o método retornará um status para cada agendamento
enviado. Sendo
assim, para obter o status de cada agendamento/Ticket, o sistema cliente deverá acessar método searchgatein, que
estará disponível nos seguintes links:
• Teste - "http://brmaerskdev.eprofessionalti.com/api/portal/integra/searchgatein"
• Produção - “https://www.portalagendamentos.com.br/api/portal/integra/searchgatein”
Os métodos em questão, são posts e o seguinte JSON deve ser enviado:
JSON para a requisição do método searchgatein:
Onde:
DEPOT - Recebe o CNPJ do Depot
TOKEN – Recebe o Token obtido no método getaccess
CNONCE – Recebe o CNONCE obtido no método getaccess
NONCE – Recebe o NONCE obtido no método savegatein.
II - Retorno
O retorno será uma lista (Dictionary(String,Object)) e poderá conter um ou mais objetos com dados do agendamento
(Ticket). Notar que cada Ticket tem seu próprio status; Caso o atributo ERROR, seja diferente de
vazio, um erro
ocorreu para o agendamento em questão.
SAVEGATEOUT
I - Requisição
Caso a autenticação de usuário e senha tenha sido feita com sucesso, o sistema cliente deverá usar os dados
retornados (CNONCE e TOKEN) para acessar o método Gateout. O Acesso a este método
dever ser feito através das
seguintes URLs:
• Teste - "http://brmaerskdev.eprofessionalti.com/api/portal/integra/savegateout"
• Produção - "https://www.portalagendamentos.com.br/api/portal/integra/savegateout"
Aos métodos em questão, são posts e o seguinte JSON deve ser enviado:
JSON para a requisição:
Onde:
DEPOT - Recebe o CNPJ do Depot
TOKEN – Recebe o Token obtido no método getaccess
TICKETS – Um objeto que recebe os dados principais do agendamento feito no Portal da Maersk, ele
pode conter
um ou vários agendamentos conforme abaixo:
• DATA – Data do agendamento;
• MOTORISTA - Nome do Motorista;
• PLACA – Placa do caminhão;
• CPF – CPF do motorista.
• CONTAINER – Número do container
• ISO – Uso do container
• TARA – Tara do container
• MGW – MGW do container
• LACRE – Lacre de exportação
II - Retorno
O retorno será um objeto (Dictionary(String,Object)), caso seja um retorno “TRUE”, o Atributo
NONCE, voltará
preenchido com uma string que deverá ser usada para consultar os status do agendamentos enviados.
Retorno do método savegateout::
SEARCHGATEOUT
I - Requisição
Caso a autenticação de usuário e senha tenha sido feita com sucesso, o sistema cliente deverá usar os dados
retornados (CNONCE e TOKEN) para acessar o método Gateout. O Acesso a este método
dever ser feito através das
seguintes URLs:
• Teste - "http://brmaerskdev.eprofessionalti.com/api/portal/integra/searchgateout "
• Produção - "https://www.portalagendamentos.com.br/api/portal/integra/searchgateout "
Aos métodos em questão, são posts e o seguinte JSON deve ser enviado:
JSON para a requisição:
Onde:
DEPOT - Recebe o CNPJ do Depot
TOKEN – Recebe o Token obtido no método getaccess
CNONCE – Recebe o CNONCE obtido no método getaccess
NONCE – Recebe o NONCE obtido no método savegateout.
II - Retorno
O retorno será uma lista (Dictionary(String,Object)) e poderá conter um ou mais objetos com dados do agendamento
(Ticket). Notar que cada Ticket tem seu próprio status; Caso o atributo ERROR, seja diferente de
vazio, um erro
ocorreu para o agendamento em questão.