Documentação: README em cada projecto
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
64
GeradoresWS/README.md
Normal file
64
GeradoresWS/README.md
Normal file
@@ -0,0 +1,64 @@
|
||||
# GeradoresWS
|
||||
|
||||
API REST ASP.NET Core (.NET 10, minimal APIs) que expõe os geradores do
|
||||
[GeradoresService](../GeradoresService/README.md). É só de leitura, não tem autenticação nem base de dados.
|
||||
|
||||
## Executar
|
||||
|
||||
```bash
|
||||
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:
|
||||
|
||||
```bash
|
||||
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:
|
||||
|
||||
```bash
|
||||
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 |
|
||||
Reference in New Issue
Block a user