Versículo chave: "Consagre ao Senhor tudo o que você faz, e os seus planos serão bem-sucedidos." - Provérbios 16:3
Esse é um repositório de Mocks e testes de integração para integrações de API (Stripe, Stone, Oracle NetSuite, Pipefy, Jira, HubSpot, Totvs, Salesforce, SAP, etc). Muito útil para criar integrações e automações de testes, principalmente em cenários do mundo real e críticos de API, no caso de transações entre CRM/ERP.
Muitos exemplos oficiais mostram apenas o "happy path", enquanto projetos reais precisam lidar com autenticação, idempotência, retries, webhooks, rate limits e cenários de erro.
O que tornaria esse repositório realmente valioso não seriam apenas os mocks, mas o conjunto de práticas para testar integrações de ponta a ponta. Ele não é apenas um conjunto de mocks, mas um laboratório de integrações corporativas. Isso é algo que chama atenção de empresas que trabalham com ERP, CRM, fintechs e plataformas SaaS.
Dito isso, eu faria algumas alterações para deixá-lo mais próximo de um projeto usado em empresas.
Primeiro, eu separei o conceito de Mock Server, Fixtures, Testes e Contratos. Hoje tudo está relativamente organizado, mas conforme o projeto crescer (10, 20 ou 30 integrações) ele pode ficar difícil de manter.
Note
Atualmente, nosso backend está escrito em TypeScript, com mocks e testes de integração para as integrações de APIs externas: Stripe, Stone, Oracle NetSuite, Pipefy, Jira, HubSpot, Totvs, Salesforce, SAP, etc. No entanto, propondo sugestões de melhorias, seria ideal escrever em outras linguagens de programação para dar o devido suporte nessas integrações, como no cenário do mundo real. Cada integração é um servidor Express independente que reproduz o comportamento essencial da API real (rotas, formato de payload, estratégia de autenticação e principais códigos de erro), permitindo testar clients de integração sem depender do ambiente real do fornecedor.
Warning
TDD, BDD, DDD: Essa arquitetura NÃO possui DDD, mas caso queira implementar, esse processo manualmente é mais lento, portanto, automatizar essa parte facilita no desenvolvimento e testes dessas aplicações de integrações de APIs. Seja adaptativo conforme o cenário e a arquitetura utilizada.
Arquiteturas utilizadas nesse projeto:
| Arquitetura em camadas (Arquitetura do sistema) | Modelo conceitual (Modelagem de dados) |
![]() |
![]() |
Faz sentido/é útil um repositório dedicado para somente: mocks-api-integrations? Sim, faz sentido, mas depende do objetivo. Para demonstrar conhecimento em integrações, ele pode ser bastante útil para portfólio.
Por exemplo:
mocks-api-integrations
├── github-api
├── netsuite-api
├── hubspot-api
├── totvs-api
├── pipefy-api
├── stripe-api
├── salesforce-api
├── jira-api
├── swagger-mocks
├── postman-collections
└── docker-compose
Isso mostra que você sabe trabalhar com:
- REST APIs;
- autenticação OAuth/JWT;
- consumo de APIs externas;
- serialização JSON;
- tratamento de erros;
- mocks para testes;
- integração entre sistemas.
Como recrutador, eu acharia interessante porque consigo abrir um único repositório e ver vários exemplos de integração.
Por outro lado, se o repositório for apenas:
mock-api-1
mock-api-2
mock-api-3
sem contexto de negócio, ele pode parecer um conjunto de exercícios isolados.
Uma abordagem que costuma gerar mais valor é transformar os mocks em cenários reais:
netsuite-pipefy-integration
salesforce-customer-sync
github-repository-analyzer
jira-ticket-automation
stripe-payment-webhook
Isso demonstra não apenas consumo de API, mas também resolução de problemas. Pois une todos os conceitos de:
- Pipefy;
- Oracle NetSuite;
- RabbitMQ;
- ASP.NET Core;
- Java/Kotlin;
- Observability.
Então eu provavelmente criaria algo como:
integration-playground
ou
enterprise-api-integrations
contendo:
├── netsuite-pipefy-sync
├── github-api-client
├── rabbitmq-event-consumer
├── stripe-webhooks
├── mock-server-wiremock
├── postman
└── docs
Isso parece mais próximo de um ambiente corporativo real.
Agora, se o objetivo for exclusivamente demonstrar mocks para testes automatizados, aí um repositório dedicado chamado:
mocks-api-integrations
faz bastante sentido, especialmente se você usar ferramentas como:
- WireMock;
- MockServer;
- JSON Server;
- Prism;
- OpenAPI Mocking.
Nesse caso ele se torna um repositório de referência para testes e desenvolvimento de integrações.
Note
Então minha resposta seria: sim, é útil, mas ganha muito mais valor quando os mocks representam integrações reais e casos de negócio concretos, em vez de apenas endpoints fictícios isolados. Para o seu perfil de engenheiro de software focado em integrações, eu consideraria uma boa adição ao portfólio.
Estrutura:
mocks-api-integrations/
├── src/
│ ├── shared/ # store em memória, auth, simulação de erro/latência
│ ├── stripe-api/
│ ├── stone-api/
│ ├── netsuite-api/
│ ├── pipefy-api/
│ ├── jira-api/
│ ├── hubspot-api/
│ ├── totvs-api/
│ ├── salesforce-api/
│ ├── sap-api/
│ └── index.ts # sobe todos os mocks juntos (dev local)
├── tests/ # testes de integração (Jest + supertest) — pasta separada dos mocks
├── swagger-mocks/ # um stub OpenAPI por integração
├── postman-collections/ # coleção Postman com todas as APIs
├── docker-compose/ # um container por mock
└── Dockerfile
🦺 Portas padrão (configuráveis via .env):
| Serviço | Porta | Autenticação |
|---|---|---|
| Stripe | 4001 | Authorization: Bearer <token> |
| Stone | 4002 | x-api-key: <token> |
| NetSuite | 4003 | Authorization: Bearer <token> |
| Pipefy | 4004 | Authorization: Bearer <token> (GraphQL) |
| Jira | 4005 | Authorization: Bearer <token> |
| HubSpot | 4006 | Authorization: Bearer <token> |
| Totvs | 4007 | OAuth2 client-credentials → Bearer |
| Salesforce | 4008 | OAuth2 → Bearer |
| SAP | 4009 | apikey: <token> + CSRF token (fluxo OData) |
cp .env.example .env
npm installnpm run start:stripe # ou start:stone, start:netsuite, start:pipefy,
# start:jira, start:hubspot, start:totvs,
# start:salesforce, start:sapnpm run devdocker compose -f docker-compose/docker-compose.yml up --buildOs testes ficam em uma pasta separada (tests/), um arquivo por
integração, e usam supertest diretamente sobre o app Express
exportado por cada mock — não é necessário subir os containers para
rodar os testes.
npm testCada suíte cobre: fluxo de sucesso (criação/consulta/atualização), autenticação ausente/inválida (401) e regras de negócio (400/404).
Todos os mocks aceitam dois headers para forçar cenários de erro sem precisar de lógica extra no client:
x-mock-status: 503→ força o status de resposta desejadox-mock-delay-ms: 2000→ atraso artificial, útil para testar timeout
Exemplo:
curl -X POST http://localhost:4001/v1/customers \
-H "Authorization: Bearer sk_test_mock_123" \
-H "x-mock-status: 500" \
-H "Content-Type: application/json" \
-d '{"email":"teste@empresa.com"}'Cada integração tem um stub OpenAPI em swagger-mocks/, útil para
gerar documentação ou clients automaticamente (ex: openapi-generator).
Importe postman-collections/mocks-api-integrations.postman_collection.json
no Postman — a coleção já vem organizada em uma pasta por integração,
com variáveis pré-configuradas para cada base URL e credencial.
- Toda a persistência é em memória (reinicia a cada restart do processo) — o objetivo é mockar contrato/comportamento, não simular um banco de dados.
- As credenciais em
.env.examplesão fake e servem apenas para os mocks locais.

