Skip to content

v0.7.0 – RFC 9457 & Nested Generics Support

Choose a tag to compare

@bsayli bsayli released this 07 Oct 23:58
· 40 commits to main since this release

Highlights

⚙️ Core Enhancements

  • Introduced RFC 9457-compliant error handling (application/problem+jsonProblemDetail).

  • Implemented dynamic nested generics support for ServiceResponse<Page<T>> and similar envelopes.

  • Added vendor extensions:

    • x-api-wrapper (existing)
    • x-data-container and x-data-item for introspection of nested containers.
  • Introduced generic Page schema for scalable list endpoints.

  • Unified OpenAPI schema enrichment logic under AutoWrapperSchemaCustomizer, dynamically detecting all wrapper variations.

  • Configurable via new properties:

    app:
      openapi:
        wrapper:
          class-extra-annotation: "@com.fasterxml.jackson.annotation.JsonIgnoreProperties(ignoreUnknown = true)"
          generic-containers:
            - Page

🧠 OpenAPI & Springdoc Integration

  • Enhanced schema registration with dynamic detection of all ServiceResponse<T> and ServiceResponse<Page<T>> return types.
  • Extended vendor metadata for better client template generation.
  • Simplified controller setup — no manual schema definitions needed.

📘 Documentation & Guides

  • Complete rewrite of all adoption guides (Server-Side, Client-Side, Build Setup).
  • Clear examples showing both single and paged responses (ServiceClientResponse<T> and ServiceClientResponse<Page<T>>).
  • Integrated ProblemDetail error model into all docs and examples.
  • Added official RFC 9457 reference link
  • Improved readability for GitHub Pages on both desktop and mobile.

🌐 GitHub Pages & Repository Updates

  • Reorganized titles and navigation for cleaner layout (shorter page titles).
  • Verified all code snippets for syntax and formatting consistency.
  • README now highlights the { data, meta } envelope and nested generic architecture.
  • Minor cleanup and alignment of module structures (customer-service, customer-service-client).

Why it matters

This release marks a major architectural milestone
moving from static templates to a fully dynamic, generics-aware schema system with production-grade error handling.

Developers now get:

  • Clean, type-safe client wrappers.
  • Automatic OpenAPI schema generation for nested generics.
  • Standardized RFC 9457 error responses across all services.
  • A modern documentation site ready for onboarding and contribution.

Next Steps

  • Keep long-term plan open for future artifact publishing (no immediate release planned):
    • io.github.bsayli:openapi-generics-autoreg
    • io.github.bsayli:openapi-generics-templates

Release focus: RFC 9457 compliance, dynamic nested generics, pagination-aware wrappers, and full documentation alignment for version 0.7.0.