Thanks for your interest in improving OpenAPI Generics.
OpenAPI Generics is a contract-preserving OpenAPI platform for Java and Spring Boot, built around a deterministic lifecycle:
Java Contract → OpenAPI Projection → Deterministic Client Reconstruction
Built with:
- Java 17+
- Spring Boot 3.4.x, 3.5.x, 4.x
- OpenAPI Generator 7.x
Be kind, be constructive, and follow our Code of Conduct.
- Questions & Support
- How to Contribute
- Development Setup
- Project Layout
- Coding Style & Commits
- Testing
- Architecture Principles
- Pull Request Checklist
- Security
- License
Before opening an issue, please search existing Issues and Discussions.
Use GitHub Discussions for:
- design questions
- generic contracts and containers
- projection and code generation behavior
- usage and integration questions
Use GitHub Issues for reproducible bugs.
- Fork the repository.
- Create a focused branch.
git checkout -b feature/short-description- Keep changes small and self-contained.
- Update documentation and tests when behavior changes.
- Run the full build before opening a pull request.
Small, focused pull requests are easier to review.
- Java 17+ (Java 21 recommended)
- Maven 3.9+
mvn -q -ntp clean verifyopenapi-generics-contract
openapi-generics-platform-bom
openapi-generics-server-starter
openapi-generics-java-codegen
openapi-generics-java-codegen-parent
- Keep implementations deterministic.
- Avoid unnecessary complexity.
- Never modify generated code.
- Fix issues at the source:
- contract
- projection
- generator
feature:bugfix:docs:refactor:test:ci:
Run the complete verification suite before submitting changes:
mvn clean verifyCore platform modules focus on deterministic contract projection and client generation. End-to-end validation is performed through the sample projects.
These are project invariants.
Contract-owned response envelopes (for example ServiceResponse<T> or your own BYOE envelope) define the API contract.
OpenAPI is a projection of that contract.
The same contract and configuration must always produce the same generated output.
Contracts are defined once and reused across server, OpenAPI, and generated clients.
Never fix problems in generated sources.
Always fix them in:
- the contract
- the projection layer
- the generator
- Scope is focused
- Build passes
- Tests updated when required
- Documentation updated when required
- No generated code has been modified
Please do not report security vulnerabilities through public GitHub issues.
Use GitHub Security Advisories or the contact information described in SECURITY.md.
By contributing, you agree that your contributions will be licensed under the project's MIT License.