Pular para o conteúdo

Integração de sistemas e desenvolvimento de API

Equipamento de terceiro, login corporativo, serviço externo e API própria. A camada que faz sistemas que não se conhecem trabalharem juntos.

Integração é a camada que liga sistemas que não foram feitos pra conversar. Na App.co isso cobre três frentes: a API própria, que expõe o que o seu produto sabe fazer; a conexão com equipamento e serviço de terceiro; e a identidade, que decide quem entra e com qual permissão.

O case mais denso disso é o Farm Tracker. O cliente já tinha um hardware proprietário com GPS e RFID acoplado ao trator, e o que faltava era software: o app em Flutter lê o equipamento por Bluetooth, uma API em C# / .NET sobre PostgreSQL costura hardware, app de campo e dashboard, e o rastreio continua funcionando onde não tem sinal. Na mesma prateleira estão a API em NestJS do ALLTURISMO e o login corporativo do Agrária Ortssippenbuch via Microsoft Entra ID.

O que é integração de sistemas, na prática?

É fazer dois softwares que não se conhecem trabalharem como um só. Pode ser o seu sistema puxando dado de um serviço externo, um equipamento mandando leitura pro aplicativo, ou o seu produto expondo uma API pra outra empresa consumir.

O trabalho quase nunca está na parte que parece difícil. Ligar as duas pontas é rápido. O projeto de verdade é decidir o que acontece quando o outro lado responde diferente do que a documentação promete, quando ele demora, quando ele cai no meio da operação e quando a mesma informação chega duas vezes. Integração boa é a que continua correta no dia ruim.

Dá pra integrar um equipamento que a empresa já usa?

Dá, e é a competência mais rara que a App.co tem documentada. Bluetooth Low Energy é o caminho mais comum quando o software precisa conversar com equipamento, e é onde a maioria dos projetos trava: nesse ponto o app deixa de ser tela e vira parte da operação.

No Farm Tracker o hardware é do cliente, proprietário, com GPS e RFID, feito pra ficar acoplado ao trator durante a aplicação de insumos. O app em Flutter lê esse equipamento por Bluetooth e registra a trajetória da aplicação. O projeto foi tocado em parceria com a Bitzen.

De um equipamento pro outro muda o protocolo e muda o que o fabricante deixa o software enxergar: o que dá pra ler, o que dá pra escrever e com que frequência ele responde. Por isso a investigação do equipamento vem antes do cronograma, com a documentação do fabricante na mesa ou com o aparelho ligado na bancada.

Ver a integração com hardware no case Farm Tracker

E quando a integração precisa funcionar sem internet?

Tem operação que acontece onde não chega sinal, e aí a integração não pode depender de resposta do servidor pra seguir. Numa fazenda, o equipamento entra no talhão de manhã e só reencontra a rede no fim do expediente. Se o software para nesse intervalo, a operação para junto.

A saída é tratar a sincronização como um evento à parte, e não como pré-requisito. O dispositivo grava tudo localmente e envia quando a rede volta. A decisão difícil é de modelo de dados: quem é a fonte da verdade e o que fazer quando as duas pontas mudaram enquanto estavam separadas.

É assim que o Farm Tracker registra a trajetória inteira da aplicação de insumos com o celular fora do ar e entrega o dado ao dashboard depois, sem ninguém digitar nada no caminho.

Ver como a App.co constrói app offline-first em Flutter

Vocês constroem a API do zero também?

Sim, e essa é metade do serviço. Uma API própria é o que permite que o app, o painel administrativo e o parceiro externo consumam a mesma regra de negócio, escrita uma vez só.

A App.co já entregou API em três stacks diferentes: NestJS sobre PostgreSQL no ALLTURISMO, com testes em Jest cobrindo o fluxo de cupom de ponta a ponta; Node.js com Express e Prisma no Agrária Ortssippenbuch, cuidando do modelo genealógico; e C# / .NET no Farm Tracker, costurando hardware, app e dashboard.

A escolha segue o critério de sempre: o que o produto pede e o que a sua equipe consegue manter depois.

Ver a API e o fluxo de cupom no case ALLTURISMO

Dá pra usar o login corporativo que a empresa já tem?

Dá. Autenticação federada é uma integração como outra qualquer, com a diferença de que ela decide quem entra. Usar a identidade que a empresa já mantém evita cadastro paralelo, senha nova e aquele acesso esquecido de quem saiu há seis meses.

No Agrária Ortssippenbuch o acesso é via Microsoft Entra ID, restrito aos membros da cooperativa, com o sistema hospedado no ambiente Azure que a casa já usava.

Ver o login corporativo em uso no case Agrária

Cobrança recorrente entra aqui?

Entra. Dentro do aplicativo, Apple e Google exigem que a compra de conteúdo digital passe pela loja, cada uma com seu ciclo de renovação, cancelamento e reembolso. No ALLTURISMO a assinatura foi integrada via RevenueCat e ficou ativa no iOS e no Android, com uma camada só cuidando dos dois lados em vez de duas implementações pra manter.

Fora das lojas, integrar um gateway de pagamento segue o método de qualquer serviço externo: ler a documentação, tratar o retorno assíncrono do provedor, garantir que uma cobrança repetida não vire duas e manter dado de cartão fora do seu sistema. Se você já usa um provedor, a gente estuda a documentação dele antes de assumir prazo.

Como saber se a integração vai aguentar?

Testando o caminho inteiro, não o pedaço. Integração quebra na costura: no formato que mudou sem aviso, na resposta que demorou, no evento que chegou duas vezes.

No ALLTURISMO o fluxo de cupom, que atravessa app, API e dashboard, é coberto por testes automatizados em Jest de ponta a ponta. Quando a ponta é hardware, teste automatizado não substitui campo: parte do trabalho é ir com o equipamento na mão e ver o que acontece quando o pareamento cai no meio do serviço.

Conhecer quem faz arquitetura e code review na App.co

Stack

O que a gente usa aqui

Equipamento & IoT

Bluetooth Low EnergyGPSRFID

APIs

C# / .NETNestJSNode.jsExpressPrismaRESTGraphQL

Dados

PostgreSQLMongoDBRedisSupabase

Identidade & cobrança

Microsoft Entra IDOAuth 2.0RevenueCat

Dúvidas

Perguntas que sempre aparecem

Vocês integram com ERP?

A porta de entrada é sempre a mesma: a API que o fornecedor publica. Se o seu ERP tem documentação e libera acesso, a gente lê a documentação, testa em ambiente de homologação e diz o que dá pra fazer antes de assumir prazo. O que a App.co mostra em portfólio é integração com hardware proprietário, com login corporativo e com cobrança nas lojas, e é sobre isso que a gente mostra código.

E integração com gateway de pagamento?

Vale a mesma régua. Cobrança dentro do aplicativo passa obrigatoriamente pela App Store e pela Google Play, e no ALLTURISMO essa parte foi resolvida com RevenueCat. Cobrança na web passa por um gateway, e aí o trabalho é tratar o retorno assíncrono do provedor, evitar cobrança duplicada e manter dado de cartão fora do seu sistema.

Quanto tempo leva uma integração?

O prazo é ditado pelo outro lado. Serviço com documentação boa e ambiente de teste sai rápido. Equipamento sem documentação, API antiga sem homologação ou fornecedor que demora pra liberar credencial mudam o cronograma inteiro. Por isso a gente investiga o outro lado antes de dar prazo, e não depois.

O que acontece quando o outro sistema sai do ar?

O seu produto precisa continuar de pé. Isso se resolve no desenho: guardar o que ainda não foi enviado, tentar de novo com espera crescente, garantir que uma mensagem repetida não gere efeito duplicado e avisar quem opera quando a fila está parada. É o mesmo raciocínio da camada offline-first do Farm Tracker, onde a falta de rede é regra e não exceção.

Dá pra integrar com um equipamento por Bluetooth?

Dá. É o que o Farm Tracker faz: o app em Flutter conversa por Bluetooth com o hardware de GPS e RFID acoplado ao trator e registra a operação em campo. O que precisa ser checado antes é o protocolo do equipamento e a documentação do fabricante, porque é isso que define o que o software consegue ler e escrever.

Tem dois sistemas que precisam conversar?

Conta o que precisa. A gente responde rápido e fala reto.

Falar no WhatsApp

Ou por e-mail: gustavo@app-co.net

Ver todos os serviços da App.co