meldestelle/backend/services/masterdata/masterdata-api/src/main/resources/openapi/documentation.yaml
Stefan Mogeritsch 2f17778df6 feat(masterdata): introduce Regulation domain with API, persistence, and metrics integration
- Added `RegulationRepository` and its `Exposed` implementation for persistence.
- Implemented REST endpoints for regulations (`/rules`) in `RegulationController`, including support for tournament classes, license matrix, guidelines, fees, and configuration retrieval.
- Integrated OpenAPI documentation for `/rules` endpoints with Swagger UI in `masterdataApiModule`.
- Enabled Micrometer-based metrics for Prometheus in the API layer.
- Updated Gradle dependencies to include OpenAPI, Swagger, and Micrometer libraries.
- Registered `RegulationRepository` and `RegulationController` in `MasterdataConfiguration`.
- Improved database access patterns and reduced repetitive validation logic across domain services.
- Added unit and application tests for `RegulationController` to verify API behavior and repository interactions.
- Updated the service's `ROADMAP.md` to mark API v1 endpoints and observability as complete.

Signed-off-by: Stefan Mogeritsch <stefan.mo.co@gmail.com>
2026-03-30 15:38:18 +02:00

67 lines
1.5 KiB
YAML

openapi: 3.0.3
info:
title: Masterdata SCS API
description: >
API für den Masterdata-Bounded-Context (Stammdaten: Reiter, Pferde, Vereine, Regeln)
version: 1.0.0
servers:
- url: http://localhost:8091
description: Lokaler Entwicklungs-Server
paths:
/reiter/search:
get:
summary: Sucht Reiter
parameters:
- name: q
in: query
required: true
schema:
type: string
responses:
'200':
description: Liste von Reitern
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Reiter'
/rules/turnierklassen:
get:
summary: Alle Turnierklassen abrufen
responses:
'200':
description: Liste von Turnierklassen
/rules/lizenzmatrix:
get:
summary: Lizenz-Matrix abrufen
responses:
'200':
description: Liste von Matrix-Einträgen
/rules/config:
get:
summary: Regel-Konfiguration abrufen
parameters:
- name: active
in: query
schema:
type: boolean
responses:
'200':
description: Liste von Konfigurationen
components:
schemas:
Reiter:
type: object
properties:
reiterId:
type: string
format: uuid
nachname:
type: string
vorname:
type: string
satznummer:
type: string