Skip to content

Commit d5b7567

Browse files
committed
docs(readme): polish README and GitHub Pages home
1 parent 04c6547 commit d5b7567

3 files changed

Lines changed: 43 additions & 28 deletions

File tree

README.md

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -220,8 +220,7 @@ For BYOE, BYOC, and fallback-to-standard-generation options, see the [Key featur
220220

221221
## Real-World Example
222222

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.
225224

226225
The project demonstrates:
227226

@@ -231,8 +230,6 @@ The project demonstrates:
231230
- Shared `ApiResponse<T>` reuse across service, client, SDK, and CLI
232231
- Docker-based end-to-end verification
233232

234-
🔗 https://github.com/bsayli/licensing
235-
236233
---
237234

238235
## What's New in 1.2
@@ -411,9 +408,9 @@ Use this mode for output comparison, troubleshooting, or temporary opt-out scena
411408

412409
## How it works
413410

414-
OpenAPI Generics is not primarily a generics solution.
411+
OpenAPI Generics preserves Java generic contract semantics across the OpenAPI lifecycle.
415412

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.
417414

418415
The project is built on one principle:
419416

@@ -471,7 +468,7 @@ Together, these extensions describe wrapper semantics, payload type, container i
471468
The architecture consists of two complementary phases:
472469

473470
- **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.
475472

476473
Both phases share the same contract authority while keeping generated code isolated from application code.
477474

@@ -514,10 +511,11 @@ The generated OpenAPI document remains valid OpenAPI and can be consumed by stan
514511

515512
What OpenAPI Generics adds:
516513

517-
- Generic-aware client generation through a custom `JavaClientCodegen`
514+
- Generics-aware Java client generation through an OpenAPI Generator specialization
518515
- Contract metadata via vendor extensions such as `x-api-wrapper`, `x-data-container`, `x-data-container-type`, and `x-data-item`
519516
- Server-side OpenAPI enrichment through Springdoc integration
520517
- Container-aware reconstruction for both built-in and application-defined generic container contracts
518+
- Deterministic generated-source hygiene for cleaner Java client output
521519

522520
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.
523521

@@ -546,11 +544,13 @@ The provided parent configuration includes a tested default, but consumers may o
546544

547545
## Modules
548546

549-
* [openapi-generics-contract](openapi-generics-contract/README.md)
550-
* [openapi-generics-server-starter](openapi-generics-server-starter/README.md)
551-
* [openapi-generics-java-codegen](openapi-generics-java-codegen/README.md)
552-
* [openapi-generics-java-codegen-parent](openapi-generics-java-codegen-parent/README.md)
553-
* [openapi-generics-platform-bom](openapi-generics-platform-bom/README.md)
547+
| Module | Responsibility |
548+
|----------|----------------|
549+
| [`openapi-generics-contract`](openapi-generics-contract/README.md) | Shared response contracts and platform-owned generic types. |
550+
| [`openapi-generics-server-starter`](openapi-generics-server-starter/README.md) | Spring Boot integration that projects generic contract metadata into OpenAPI. |
551+
| [`openapi-generics-java-codegen`](openapi-generics-java-codegen/README.md) | OpenAPI Generator specialization that reconstructs contract-aligned Java clients. |
552+
| [`openapi-generics-java-codegen-parent`](openapi-generics-java-codegen-parent/README.md) | Maven parent for client generation, template patching, and generated-source hygiene. |
553+
| [`openapi-generics-platform-bom`](openapi-generics-platform-bom/README.md) | Dependency alignment for OpenAPI Generics modules. |
554554

555555
---
556556

@@ -561,8 +561,8 @@ The provided parent configuration includes a tested default, but consumers may o
561561
- **[Rationale: Why OpenAPI Generics Exists](./docs/architecture/rationale.md)**
562562
Explains the architectural motivation, design decisions, engineering trade-offs, and ecosystem constraints behind the project.
563563

564-
- **[Adoption Guide](https://blueprint-platform.github.io/openapi-generics/)**
565-
Official guide for server-side and client-side integration.
564+
- **[Documentation Site](https://blueprint-platform.github.io/openapi-generics/)**
565+
Official GitHub Pages documentation for adoption guides, architecture, compatibility, and project usage.
566566

567567
### Articles
568568

docs/architecture/rationale.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,9 @@
1+
---
2+
layout: default
3+
title: Architectural Rationale
4+
nav_exclude: true
5+
---
6+
17
# Architectural Rationale: Why OpenAPI Generics Exists
28

39
**Intended Audience:** Enterprise architects, platform engineers, OpenAPI specification contributors, language tooling maintainers, and teams responsible for API contract governance.

docs/index.md

Lines changed: 22 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ The result is simple:
2626

2727
> Generated clients reconstruct your contract instead of redefining it.
2828
29-
[Get Started](#get-started) · [GitHub Repository](https://github.com/blueprint-platform/openapi-generics)
29+
[Get Started](#get-started) · [Samples](#samples) · [GitHub Repository](https://github.com/blueprint-platform/openapi-generics)
3030

3131
---
3232

@@ -39,6 +39,7 @@ The result is simple:
3939
- [How It Works](#how-it-works)
4040
- [Get Started](#get-started)
4141
- [Documentation](#documentation)
42+
- [Samples](#samples)
4243
- [Compatibility](#compatibility)
4344
- [Community](#community)
4445

@@ -215,24 +216,32 @@ mvn clean install
215216

216217
## Documentation
217218

218-
- [Server-Side Adoption](adoption/server-side-adoption.md)
219-
- [Client-Side Adoption](adoption/client-side-adoption.md)
220-
- [Architecture](architecture/architecture.md)
221-
- [Compatibility & Support Policy](compatibility.md)
222-
- [GitHub Repository](https://github.com/blueprint-platform/openapi-generics)
219+
- [Architectural Rationale](architecture/rationale.md)
220+
Why OpenAPI Generics exists, what problem it solves, and the architectural trade-offs behind the project.
221+
222+
- [Server-Side Adoption](adoption/server-side-adoption.md)
223+
Publish generics-aware OpenAPI documents from Spring Boot services without changing runtime behavior.
224+
225+
- [Client-Side Adoption](adoption/client-side-adoption.md)
226+
Generate Java clients that reconstruct generic contracts instead of redefining them.
227+
228+
- [Architecture](architecture/architecture.md)
229+
Internal projection and reconstruction model of OpenAPI Generics.
230+
231+
- [Compatibility & Support Policy](compatibility.md)
232+
Supported Java, Spring Boot, springdoc-openapi, OpenAPI Generator, and build-time boundaries.
233+
234+
- [GitHub Repository](https://github.com/blueprint-platform/openapi-generics)
235+
Source code, releases, issues, and discussions.
223236

224237
---
225238

226239
## Samples
227240

228-
Repository samples cover:
241+
Repository samples demonstrate the complete producer → OpenAPI → generated client → consumer lifecycle.
229242

230-
- Spring Boot 3
231-
- Spring Boot 4
232-
- ServiceResponse
233-
- BYOE
234-
- Type coverage
235-
- End-to-end producer → client → consumer validation
243+
- [Sample Projects](https://github.com/blueprint-platform/openapi-generics/tree/main/samples)
244+
Includes Spring Boot 3 and Spring Boot 4 end-to-end samples, built-in `ServiceResponse<T>` coverage, BYOE coverage, and type-coverage validation.
236245

237246
---
238247

0 commit comments

Comments
 (0)