GeradoresWS
API REST ASP.NET Core (.NET 10, minimal APIs) que expõe os geradores do GeradoresService. É só de leitura, não tem autenticação nem base de dados.
Executar
dotnet run --project GeradoresWS --launch-profile http
# http://localhost:5053 → redirecciona para /docs
Perfil (launchSettings.json) |
URL |
|---|---|
http |
http://localhost:5053 |
https |
https://localhost:7266 e http://localhost:5053 |
Docker |
Visual Studio, usa o Dockerfile desta pasta |
Endpoints
| Método | Rota | Descrição |
|---|---|---|
| GET | /api/v1/generators |
Lista os geradores e as opções de cada um |
| GET | /api/v1/generators/{id} |
Detalhe de um gerador (404 se não existir) |
| GET | /api/v1/generators/{id}/generate |
Gera valores. Query: count (1–1000, por omissão 1), seed (opcional) e as opções do gerador |
| GET | /api/v1/generators/{id}/validate?value=... |
Valida um valor de um tipo (404 se o tipo não validar) |
| GET | /api/v1/validate?value=... |
Validador livre: detecta o tipo e valida |
| GET | /openapi/v1.json |
Documento OpenAPI |
| GET | /docs |
Documentação interactiva (Scalar) |
| GET | /health |
Health check |
Exemplos:
curl "http://localhost:5053/api/v1/generators/nif/generate?count=5&tipo=5"
curl "http://localhost:5053/api/v1/generators/iban/validate?value=PT50000201231234567890154"
curl "http://localhost:5053/api/v1/validate?value=123456789"
Erros de input (opção desconhecida, valor de opção inválido, count fora do intervalo) devolvem
400 com ValidationProblemDetails; as restantes falhas devolvem ProblemDetails.
Configuração
- CORS: qualquer origem pode fazer
GET(API pública, sem credenciais). - Porta em container:
8080(ASPNETCORE_HTTP_PORTS). InvariantGlobalizationestá activo, por isso a imagem não precisa de ICU.
Docker
O Dockerfile da raiz do repositório é o usado no docker compose e no Jenkins. O Dockerfile desta pasta é
equivalente, com o stage base que o Visual Studio espera. Em ambos o contexto de build é a raiz do repositório:
docker build -t geradoresws .
docker run -p 5050:8080 geradoresws
Ficheiros
| Ficheiro | Conteúdo |
|---|---|
Program.cs |
Serviços (registry, OpenAPI, CORS, health checks) e pipeline |
GeneratorEndpoints.cs |
Rotas /api/v1 e DTOs de resposta |