{"id":42852687,"url":"https://github.com/muehmar/gradle-openapi-schema","last_synced_at":"2026-01-30T12:10:32.945Z","repository":{"id":45464050,"uuid":"340725916","full_name":"muehmar/gradle-openapi-schema","owner":"muehmar","description":"Generate schema sources for Java from an OpenAPI 3.0.x or 3.1.x specification.","archived":false,"fork":false,"pushed_at":"2026-01-18T06:51:10.000Z","size":5338,"stargazers_count":9,"open_issues_count":10,"forks_count":6,"subscribers_count":1,"default_branch":"master","last_synced_at":"2026-01-18T16:34:35.003Z","etag":null,"topics":["java","openapi","openapi-specification"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/muehmar.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2021-02-20T18:35:01.000Z","updated_at":"2026-01-18T06:51:14.000Z","dependencies_parsed_at":"2023-10-14T19:07:56.701Z","dependency_job_id":"5be5ed9e-5186-4504-b222-abb230b59d2b","html_url":"https://github.com/muehmar/gradle-openapi-schema","commit_stats":null,"previous_names":[],"tags_count":70,"template":false,"template_full_name":null,"purl":"pkg:github/muehmar/gradle-openapi-schema","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/muehmar%2Fgradle-openapi-schema","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/muehmar%2Fgradle-openapi-schema/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/muehmar%2Fgradle-openapi-schema/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/muehmar%2Fgradle-openapi-schema/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/muehmar","download_url":"https://codeload.github.com/muehmar/gradle-openapi-schema/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/muehmar%2Fgradle-openapi-schema/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28912386,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-30T11:55:24.701Z","status":"ssl_error","status_checked_at":"2026-01-30T11:54:13.194Z","response_time":66,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["java","openapi","openapi-specification"],"created_at":"2026-01-30T12:10:32.243Z","updated_at":"2026-01-30T12:10:32.940Z","avatar_url":"https://github.com/muehmar.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![Build Status](https://github.com/muehmar/gradle-openapi-schema/actions/workflows/gradle.yml/badge.svg?branch=master)](https://github.com/muehmar/gradle-openapi-schema/actions/workflows/gradle.yml)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://github.com/muehmar/gradle-openapi-schema/blob/master/LICENSE)\n\n# Gradle OpenApi Schema Codegen\n\nThis is a gradle plugin to generate Java code given an openapi 3.0.x or 3.1.0 specification. Unlike other codegen tools,\nthis focuses mainly on the `#/component/schema` section. It generates immutable classes and a staged builder to support\na safe way creating instances. The data classes support JSON conversions via jackson.\n\nThis plugin has three main advantages over using the standard OpenAPI Generator for schemas:\n\n* Extended support of schema specifications: The generator can create classes for almost every possible schema\n  definition\n* Extended validation: The generated code can be validated automatically against every constraint one can define in the\n  specification\n* Improved compile-time safety: The generated classes do reflect more property attributes to improve the compile-time\n  safety\n\nThe main features are:\n\n* Immutable Java classes\n* Staged builder pattern for compile-time-safe creation of instances\n* JSON deserializing and serializing support with Jackson 2.x and 3.x\n* Basic XML deserializing and serializing support with Jackson 2.x and 3.x\n* Customization of the code generation\n* Support for Java Bean Validation 2.x and Jakarta Bean Validation 2.x / 3.x\n* Additional validation of object level constraints\n* Extraction of description for enums\n* Supports processing multiple specifications\n* Support compositions (`allOf`, `anyOf`, `oneOf`)\n* Customization of DTO classnames\n* Easy integration with the official OpenAPI Generator\n\nThe implementation is based on the\n[swagger-parser](https://github.com/swagger-api/swagger-parser)\nproject.\n\n## Usage\n\nAdd the plugin section in your `build.gradle`:\n\n```groovy\nplugins {\n    id 'com.github.muehmar.openapischema' version '4.0.1'\n}\n```\n\nand configure the generation:\n\n```groovy\nopenApiGenerator {\n    schemas {\n        apiV1 {\n            inputSpec = \"$projectDir/src/main/resources/openapi-v1.yml\"\n        }\n    }\n}\n```\n\n## Documentation\n\n1. [Configuration](doc/010_configuration.md)\n2. [Compatibility](doc/015_compatibility.md)\n2. [Supported OpenAPI versions](doc/020_openapi_support.md)\n3. [Warnings](doc/030_warnings.md)\n4. [Compositions](doc/040_compositions.md)\n5. [Nullability](doc/050_nullability.md)\n6. [Staged Builder](doc/060_staged_builder.md)\n7. [Validation](doc/070_validation.md)\n8. [Extraction of enum-description](doc/080_extraction_of_enum_description.md)\n9. [XML Support](doc/091_xml_support.md)\n10. [Integration with OpenAPI Generator](doc/095_official_openapi_generator_integration.md)\n11. [Incremental Build](doc/100_incremental_build.md)\n12. [Limitations](doc/110_limitations.md)\n13. [Migration Guides](doc/120_migration_guides.md)\n14. [Change Log](doc/130_change_log.md)\n\n## Credits\n\n* @eikek for the famous `PList`\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmuehmar%2Fgradle-openapi-schema","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmuehmar%2Fgradle-openapi-schema","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmuehmar%2Fgradle-openapi-schema/lists"}