Files
Geradores/GeradoresWS

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).
  • InvariantGlobalization está 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