You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+15-15Lines changed: 15 additions & 15 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -220,8 +220,7 @@ For BYOE, BYOC, and fallback-to-standard-generation options, see the [Key featur
220
220
221
221
## Real-World Example
222
222
223
-
See the Licensing Project for a complete end-to-end BYOE example
224
-
using a shared `ApiResponse<T>` contract.
223
+
See the [Licensing Project](https://github.com/bsayli/licensing) for a complete end-to-end BYOE example using a shared `ApiResponse<T>` contract.
225
224
226
225
The project demonstrates:
227
226
@@ -231,8 +230,6 @@ The project demonstrates:
231
230
- Shared `ApiResponse<T>` reuse across service, client, SDK, and CLI
232
231
- Docker-based end-to-end verification
233
232
234
-
🔗 https://github.com/bsayli/licensing
235
-
236
233
---
237
234
238
235
## What's New in 1.2
@@ -411,9 +408,9 @@ Use this mode for output comparison, troubleshooting, or temporary opt-out scena
411
408
412
409
## How it works
413
410
414
-
OpenAPI Generics is not primarily a generics solution.
411
+
OpenAPI Generics preserves Java generic contract semantics across the OpenAPI lifecycle.
415
412
416
-
It is a contract preservation system that uses Java generics to keep API contracts consistent across the entire OpenAPI lifecycle.
413
+
It keeps generic response envelopes, container payloads, and shared DTO contracts aligned from Spring Boot producers to generated Java clients.
417
414
418
415
The project is built on one principle:
419
416
@@ -471,7 +468,7 @@ Together, these extensions describe wrapper semantics, payload type, container i
471
468
The architecture consists of two complementary phases:
472
469
473
470
- **Projection** — derives deterministic OpenAPI metadata from Java contracts.
474
-
- **Enforcement** — reconstructs those contracts during client generation using the projected metadata.
471
+
- **Reconstruction** — restores contract-aligned Java client types during generation using the projected metadata.
475
472
476
473
Both phases share the same contract authority while keeping generated code isolated from application code.
477
474
@@ -514,10 +511,11 @@ The generated OpenAPI document remains valid OpenAPI and can be consumed by stan
514
511
515
512
What OpenAPI Generics adds:
516
513
517
-
- Generic-aware client generation through a custom `JavaClientCodegen`
514
+
- Generics-aware Java client generation through an OpenAPI Generator specialization
518
515
- Contract metadata via vendor extensions such as `x-api-wrapper`, `x-data-container`, `x-data-container-type`, and `x-data-item`
519
516
- Server-side OpenAPI enrichment through Springdoc integration
520
517
- Container-aware reconstruction for both built-in and application-defined generic container contracts
518
+
- Deterministic generated-source hygiene for cleaner Java client output
521
519
522
520
The project keeps OpenAPI Generator as the source of template structure and applies a minimal generics-aware extension layer rather than maintaining a forked template set.
523
521
@@ -546,11 +544,13 @@ The provided parent configuration includes a tested default, but consumers may o
| [`openapi-generics-server-starter`](openapi-generics-server-starter/README.md) | Spring Boot integration that projects generic contract metadata into OpenAPI. |
**Intended Audience:** Enterprise architects, platform engineers, OpenAPI specification contributors, language tooling maintainers, and teams responsible for API contract governance.
0 commit comments