b3cd3a6736ed428df80b1a08d3e4744ca879dde8
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Factory Id — Geradores
Geradores e validadores de dados portugueses para testes de software: NIF, NIPC, NISS, Cartão de Cidadão, IBAN/NIB, cartões de pagamento, referências Multibanco, telefones, códigos postais, emails, pessoas fictícias, matrículas, EAN e UUID.
- Geração em lote (até 1000 de cada vez) com exportação CSV, JSON e TXT
- Validador livre: cola-se um valor qualquer, o tipo é detectado e é explicado porque é (in)válido
- API REST documentada em
/docs
Estrutura
| Pasta | Conteúdo |
|---|---|
GeradoresService/ |
Biblioteca com os algoritmos. Cada tipo é uma classe IGenerator em Generators/ |
GeradoresWS/ |
API ASP.NET Core (.NET 10, minimal APIs, OpenAPI + Scalar) |
UnitTest/ |
Testes xUnit (algoritmos, valores conhecidos e API) |
geradoresfe/ |
Frontend React + Vite + Tailwind. A UI é construída a partir dos metadados da API |
Desenvolvimento
# API em http://localhost:5053 (docs em /docs)
dotnet run --project GeradoresWS --launch-profile http
# Frontend em http://localhost:3000 (faz proxy de /api para a API)
cd geradoresfe && npm install && npm run dev
Testes:
dotnet test UnitTest
cd geradoresfe && npm test && npm run lint
Docker
docker compose up --build
# Frontend: http://localhost:3000 API directa: http://localhost:5050/docs
O nginx do frontend encaminha /api, /docs e /openapi para API_UPSTREAM
(por omissão http://geradoresws:8080), por isso a mesma imagem funciona em qualquer ambiente
sem rebuild.
API
| Método | Rota | Descrição |
|---|---|---|
| GET | /api/v1/generators |
Lista de geradores e opções |
| GET | /api/v1/generators/{id}/generate?count=10&<opção>=<valor> |
Gera valores (seed opcional para resultados reprodutíveis) |
| GET | /api/v1/generators/{id}/validate?value=... |
Valida um valor de um tipo |
| GET | /api/v1/validate?value=... |
Detecta o tipo e valida |
| GET | /health |
Health check |
Exemplo: GET /api/v1/generators/nif/generate?count=5&tipo=5 gera 5 NIF de pessoa colectiva.
Adicionar um gerador
- Criar uma classe em
GeradoresService/Generators/<Categoria>/que herde deGeneratorBase. - Registá-la em
GeneratorRegistry. - Pronto: aparece na API, no frontend e é coberta automaticamente pelo teste de ida e volta
(
GeneratorRoundTripTests), que gera valores com todas as opções e confirma que o validador os aceita.
Description
Geradores e validadores de dados portugueses para testes (NIF, NISS, CC, IBAN, Multibanco, ...). API .NET 10 + frontend React.
Readme
925 KiB
Languages
C#
56.6%
TypeScript
40.6%
Dockerfile
1.6%
HTML
0.7%
JavaScript
0.4%
Other
0.1%