O que fazer e o que evitar na hora de plugar as soluções

Por Alvaro Camillo Neto, desenvolvedor da TOTVS; e Saulo Negri, Tech Partner do iDEXO

Quando falamos em conectar startups e grandes empresas e gerar negócios concretos para ambas as partes, é claro que boa parte diz respeito à parte técnica, como integração de sistemas, consumo de API e etc. A seguir, algumas dicas importantes para que essa integração ocorra de forma mais fácil e rápida.

Só dizer que é REST e não implementar REST de verdade mais atrapalha do que ajuda

Atualmente, a maneira mais comum de sistemas se integrarem é com o consumo de APIs no padrão REST. Porém, antes de criar uma API Rest com a sua linguagem/framework favorito, é muito importante conhecer os conceitos do padrão, pois quem irá consumir sua API confiará que ela está seguindo o “contrato” Rest.

Alguns erros comuns na implementação de uma API REST:

Não respeitar os verbos HTTP (já vimos API que DELETAM recurso num verbo de POST);

Não respeitar ou não responder os códigos de status HTTP (para você conhecer e fixar os códigos, consulte o site HTTP Status Dogs).

 

Uma API sem documentação é a mesma coisa que nada

Na integração de sistemas, especialmente entre empresas diferentes, ter uma API e não ter uma documentação completa, explicando a API, seus métodos e parâmetros, é o mesmo que não ter uma API.

A falta de documentação diminui a velocidade do projeto de integração, o número de consultas e reuniões entre equipes aumentam e o suporte posterior a integração provavelmente impedirá a equipe de inovar. Portanto, tenha tanto carinho pela documentação da sua API quanto você teve pelo código dela.

Uma ferramenta útil que usamos é o swagger, que pode gerar automaticamente as páginas de documentação, facilitando a construção e principalmente a manutenção da API (uma documentação não atualizada é ainda pior que uma documentação pobre).

 

Tenha um Sandbox, facilita muito a vida

Ok, então as APIs estão desenvolvidas, com todos os verbos do padrão REST e super bem documentadas. Vamos colocá-las em produção? Ainda não! E a gente explica o motivo:

Ter uma Sandbox ou Ambiente de Testes te ajuda a validar se essa integração está funcional.

Ferramentas como o próprio Swagger e o Apiary te permitem testar APIs para checar se os retornos delas estão saindo como esperado na documentação.

É bem recomendável subir VMs com o ambiente em que será validada a integração, especialmente por questões de segurança, já que se houver algum problema, destrua a VM e está tudo certo!

Se quiser que pessoas de fora da sua organização conheçam sua ferramenta e testem como integrar, é possível disponibilizar tokens de autenticação para acessar plataformas web. É essencial controlar o acesso e as chamadas a esses ambientes pois sua fatura de hospedagem cloud pode ficar ligeiramente (leia-se muito) cara.

Duas startups que fazem isso de uma forma bem legal são a Xerpa e a Boleto Bancário – que estão aqui no iDEXO, aliás!

Segurança importa

APIs são formas de expor dados, ou seja, lembre-se que toda informação tem valor de negócio e tome cuidado para não abrir dados sensíveis da sua empresa – tipo metas e resultados de venda, por exemplo. Caso seja indispensável, garanta a devida segurança na autenticação (vale dar uma pesquisa mais aprofundada sobre OAuth2) e/ou acordo firmado e protegido juridicamente (NDA, por exemplo).

Algumas soluções tendem a prezar pela agilidade na integração e acabam indo por caminhos menos seguros, como acesso direto ao banco de dados. Se você acha que isso é prático e rápido, quase “plug and play”, saiba que esse é o maior pesadelo de boa parte dos gestores de segurança de informação. Para quem utiliza bancos de dados relacionais, recomendamos fortemente ler sobre SQL injection.

Outro caminho perigoso de integração, mas feito em situações de desespero, é transferir arquivos via FTP – ou até mesmo as informações para um txt – e permitir que a outra parte da integração acesse esses dados. Polêmico, no mínimo. Pense que não é tão fácil monitorar um txt numa rede em que apenas duas partes podem acessar.

Uma das melhores fontes sobre esse tema de segurança em sistema de informação pode ser encontrado no OWASP. Nesse site há uma série de possíveis falhas e como evitá-las.

Links de referência:

https://www.oreilly.com/learning/how-to-design-a-restful-api-architecture-from-a-human-language-spec
https://httpstatusdogs.com/
https://swagger.io/
https://github.com/chentsulin/awesome-graphql
https://www.devmedia.com.br/sql-injection/6102
https://apiary.io/
https://smartbear.com/blog/test-and-monitor/how-to-calculate-the-worth-of-an-api-infographic 
https://www.owasp.org/index.php/Main_Page
https://sandbox.xerpa.com.br/login?redirect=%2F%3F
https://sandbox.boletobancario.com/boletofacil/integration/integration.html