Introduced detailed documentation for the API Gateway, including its configuration and responsibilities in the system (e.g., routing, security, and cross-cutting concerns). Added a README for the core model directory to define its structure and workflow. Created a new backend README to describe its components and their documentation structure. Simplified and clarified legacy specifications for archiving purposes.
@@ -31,7 +31,7 @@ The following features have now graduated to Stable:
* Support for `return` statements in expression bodies with explicit return types is now enabled by default.
* Support for `return` statements in expression bodies with explicit return types is now enabled by default.
### Experimental: Unused return value checker
### Experimental: Unused return value checker
Kotlin 2.3.0 introduces the unused return value checker to help prevent ignored results. It warns you whenever an expression returns a value other than `Unit` or `Nothing` and isn't used.
Kotlin 2.3.0 introduces the unused return value checker to help prevent ignored results.
### Experimental: Explicit backing fields
### Experimental: Explicit backing fields
A new syntax for explicitly declaring the underlying field that holds a property's value, simplifying the common backing properties pattern.
A new syntax for explicitly declaring the underlying field that holds a property's value, simplifying the common backing properties pattern.
@@ -53,13 +53,9 @@ Starting with Kotlin 2.3.0, the compiler can generate classes containing Java 25
***Experimental Suspend Function Export:** Export suspend functions directly to JavaScript using `@JsExport`.
***Experimental Suspend Function Export:** Export suspend functions directly to JavaScript using `@JsExport`.
***`BigInt64Array` for `LongArray`:** Simplifies interop with JavaScript APIs that use typed arrays.
***`BigInt64Array` for `LongArray`:** Simplifies interop with JavaScript APIs that use typed arrays.
***Unified Companion Object Access:** Consistent access to companion objects in interfaces across all JS module systems.
***Unified Companion Object Access:** Consistent access to companion objects in interfaces across all JS module systems.
***`@JsStatic` in Interfaces:** Now supported in interfaces with companion objects.
***`@JsQualifier` on individual declarations:** Can now be applied to individual functions and classes.
***`@JsExport.Default`:** New annotation for generating JavaScript default exports.
## Gradle
## Gradle
* Fully compatible with Gradle 7.6.3 through 9.0.0.
* Fully compatible with Gradle 7.6.3 through 9.0.0.
* Minimum supported Android Gradle plugin version is now 8.2.2.
* New experimental API for registering generated sources.
* New experimental API for registering generated sources.
## Standard library
## Standard library
@@ -68,5 +64,3 @@ Starting with Kotlin 2.3.0, the compiler can generate classes containing Java 25
## Compose compiler
## Compose compiler
***Stack Traces for Minified Android Apps:** The compiler now outputs ProGuard mappings for Compose stack traces when applications are minified by R8.
***Stack Traces for Minified Android Apps:** The compiler now outputs ProGuard mappings for Compose stack traces when applications are minified by R8.
*(Dies ist eine gekürzte Zusammenfassung. Das Originaldokument enthält detailliertere Informationen und Code-Beispiele.)*
Dieses Verzeichnis ist die "Single Source of Truth" für das destillierte, fachliche Wissen des Projekts. Nur was hier beschrieben ist, gilt als vereinbarte Wahrheit für die Implementierung.
## Struktur
*`Entities/`: Beschreibt die zentralen fachlichen Entitäten des Systems (z.B. Event, Turnier, Akteur).
*`Processes/`: Dokumentiert die wichtigsten fachlichen Prozesse und Abläufe (z.B. Nennungsprozess, Ergebniserfassung).
*`Rules/`: Definiert explizite Geschäftsregeln und Validierungen.
## Workflow
Informationen in diesem Verzeichnis sind das Ergebnis der Analyse von externen Quellen (siehe `../02_Reference`) und Workshops (siehe `../03_Analysis`).
Jede Änderung am Core Model sollte nachvollziehbar und idealerweise durch ein ADR gestützt sein.
**Kontext:** Dieses Dokument ist eine historische, technische Spezifikation für eine XML-basierte Erweiterung der Ergebnisschnittstelle zwischen Meldestellen und dem OEPS. Es wird hier als Referenz für das Legacy-System archiviert.
---
```xml
<?xml version='1.0' encoding='UTF-8'?>
<!--
Erweiterung der Ergebnisschnittstelle
Erweiterung der Ergebnisschnittstelle
zwischen den Meldestellen und dem OEPS
zwischen den Meldestellen und dem OEPS
Herbert Marchl, 18. Juni 2014
Herbert Marchl, 18. Juni 2014
Umfasst Vielseitigkeit, Dressur
Umfasst Vielseitigkeit, Dressur
Update 2. Juli 2014:
Update 2. Juli 2014:
Neues Attribut „PZ“ für die Platzziffern der einzelnen Richter bei getrennt gerichteten Dressur- und
Neues Attribut „PZ“ für die Platzziffern der einzelnen Richter bei getrennt gerichteten Dressur- und
Kürprüfungen.
Kürprüfungen.
Neues Attribut „Prozent“ für das Gesamtergebnis pro Richter bei getrennt gerichteten
Neues Attribut „Prozent“ für das Gesamtergebnis pro Richter bei getrennt gerichteten
Kürprüfungen.
Kürprüfungen.
Umbenennen der Ergebnisse der einzelnen Richter von „E-VS“, „H-VS“ etc. zu „E-FS“, „H-FS“ etc.
Umbenennen der Ergebnisse der einzelnen Richter von „E-VS“, „H-VS“ etc. zu „E-FS“, „H-FS“ etc.
Neudefinition des Elements DetailDressur bei Vielseitigkeitsprüfungen:
Neudefinition des Elements DetailDressur bei Vielseitigkeitsprüfungen:
o Einführung der Richterpunkte, Richterprozente und Platzziffern als Attribute „Punkte“,
o Einführung der Richterpunkte, Richterprozente und Platzziffern als Attribute „Punkte“,
„Prozent“ bzw. „PZ“ der Sub-Elemente „E-VS“, „H-VS“, „C-VS“, „M-VS“ und „B-VS“.
„Prozent“ bzw. „PZ“ der Sub-Elemente „E-VS“, „H-VS“, „C-VS“, „M-VS“ und „B-VS“.
o Entfernen der bisherigen Attribute mit den Richterpunkten.
o Entfernen der bisherigen Attribute mit den Richterpunkten.
o Ein neues Attribut, „Punkte“, enthält die Gesamt-Punktesumme aller Richter aus dem
o Ein neues Attribut, „Punkte“, enthält die Gesamt-Punktesumme aller Richter aus dem
Dieses Verzeichnis enthält die spezifische Dokumentation für alle Backend-Komponenten, einschließlich der Microservices und der Infrastruktur-Module wie dem API-Gateway.
## Struktur
*`Services/`: Enthält pro Service eine dedizierte Markdown-Datei, die dessen Zweck, API, Datenmodell und Konfiguration beschreibt.
*`Integration/`: Dokumentation zur Interaktion zwischen den Services (z.B. Event-Flows).
## Wichtige Einstiegspunkte
***[Ping-Service](./Services/ping-service.md):** Dient als technischer Blueprint und einfachstes Beispiel für einen Service.
***[API-Gateway](../07_Infrastructure/api-gateway.md):** Beschreibung des zentralen Einstiegspunkts für alle externen Anfragen.
Dieses Dokument beschreibt die Konfiguration und die Aufgaben des API-Gateways im "Meldestelle"-Projekt.
## Zweck
Das API-Gateway (implementiert mit Spring Cloud Gateway) ist der zentrale, nach außen exponierte Einstiegspunkt für alle HTTP-Anfragen an das System.
Seine Hauptaufgaben sind:
***Routing:** Leitet Anfragen an den korrekten Microservice weiter (z.B. `/api/ping/**` -> `ping-service`).
***Security:** Erzwingt die Authentifizierung und Autorisierung für alle eingehenden Anfragen. Es validiert die von Keycloak ausgestellten JWTs.
***Cross-Cutting Concerns:** Implementiert übergreifende Funktionalitäten wie Rate Limiting, Logging und Circuit Breaking (mit Resilience4j).
## Konfiguration
Die Routen werden in der `application.yml` des Gateways definiert. Die Konfiguration für die Service Discovery erfolgt über Consul.
```yaml
spring:
cloud:
gateway:
discovery:
locator:
enabled:true
lower-case-service-id:true
routes:
- id:ping-service
uri:lb://ping-service
predicates:
- Path=/api/ping/**
filters:
- StripPrefix=2
```
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.