{"id":20875220,"url":"https://github.com/smallrye/smallrye-open-api","last_synced_at":"2025-05-14T15:07:53.446Z","repository":{"id":38485379,"uuid":"134901201","full_name":"smallrye/smallrye-open-api","owner":"smallrye","description":"SmallRye implementation of Eclipse MicroProfile OpenAPI","archived":false,"fork":false,"pushed_at":"2025-04-11T22:36:35.000Z","size":15188,"stargazers_count":123,"open_issues_count":27,"forks_count":90,"subscribers_count":12,"default_branch":"main","last_synced_at":"2025-04-12T01:53:58.831Z","etag":null,"topics":["microprofile","openapi"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/smallrye.png","metadata":{"files":{"readme":"README.adoc","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":"CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-05-25T20:20:58.000Z","updated_at":"2025-04-10T22:42:59.000Z","dependencies_parsed_at":"2022-07-14T06:00:31.620Z","dependency_job_id":"c79f374f-011f-4aa4-860a-88977322ef02","html_url":"https://github.com/smallrye/smallrye-open-api","commit_stats":{"total_commits":1258,"total_committers":58,"mean_commits":"21.689655172413794","dds":0.7631160572337043,"last_synced_commit":"1d7eaaf82ad96f82558ddb9a60d8e40c5509ace5"},"previous_names":[],"tags_count":144,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/smallrye%2Fsmallrye-open-api","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/smallrye%2Fsmallrye-open-api/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/smallrye%2Fsmallrye-open-api/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/smallrye%2Fsmallrye-open-api/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/smallrye","download_url":"https://codeload.github.com/smallrye/smallrye-open-api/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248505873,"owners_count":21115354,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["microprofile","openapi"],"created_at":"2024-11-18T06:43:11.968Z","updated_at":"2025-05-14T15:07:53.439Z","avatar_url":"https://github.com/smallrye.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":":microprofile-open-api: https://github.com/eclipse/microprofile-open-api/\n\nimage:https://github.com/smallrye/smallrye-open-api/workflows/SmallRye%20Build/badge.svg?branch=main[link=https://github.com/smallrye/smallrye-open-api/actions?query=workflow%3A%22SmallRye+Build%22]\nimage:https://sonarcloud.io/api/project_badges/measure?project=smallrye_smallrye-open-api\u0026metric=alert_status[\"Quality Gate Status\", link=\"https://sonarcloud.io/dashboard?id=smallrye_smallrye-open-api\"]\nimage:https://img.shields.io/github/license/thorntail/thorntail.svg[\"License\", link=\"http://www.apache.org/licenses/LICENSE-2.0\"]\n\n= SmallRye OpenAPI\n\nSmallRye OpenAPI is an implementation of {microprofile-open-api}[Eclipse MicroProfile OpenAPI].\n\n== Instructions\n\nCompile and install this project:\n\n[source,bash]\n----\nmvn clean install\n----\n\n=== Project structure\n\n* link:core[core] - The core OpenAPI code, independent of entry point dependencies.\n* link:extension-jaxrs[extension-jaxrs] - The JAX-RS entry point. This module depends on JAX-RS and core.\n* link:extension-spring[extension-spring] - The Spring entry point. This module depends on Spring and core.\n* link:extension-vertx[extension-vertx] - The Vert.x entry point. This module depends on Vert.x and core.\n* link:implementation[implementation] - Implementation of the Eclipse MicroProfile OpenAPI specification. This just pulls in Core and the JAX-RS extension .\n* link:model[model] - Base model classes used by core and extensions to represent an OpenAPI document\n* link:testsuite[testsuite] - Test Suites and Data\n** link:testsuite/coverage[coverage] - Test coverage report aggregator for other modules\n** link:testsuite/data[data] - Quarkus application with tests to verify additional annotation scanning scenarios\n** link:testsuite/extra[extra] - Extra integration tests not related to the TCK.\n** link:testsuite/tck[tck] - Test suite to run the implementation against the Eclipse MicroProfile OpenAPI TCK.\n* link:tools[tools]\n** link:tools/gradle-plugin[gradle-plugin] - Gradle plugin that creates the OpenAPI Schema on build.\n** link:tools/maven-plugin[maven-plugin] - Maven plugin that creates the OpenAPI Schema on build.\n** link:tools/model-apt[model-apt] - APT processor to generate model classes (in core) based on annotations (not for general-purpose use)\n\n=== Links\n\n* http://github.com/smallrye/smallrye-open-api/[Project Homepage]\n* {microprofile-open-api}[Eclipse MicroProfile OpenAPI]\n\n=== Configuration Extensions\n\n* Property Naming Strategy\n+\n[source%nowrap]\n----\nmp.openapi.extensions.smallrye.property-naming-strategy\n----\nDefine a naming strategy to be used globally for all schema properties. Set to one of the following:\n** A standard JSON-B naming strategy (listed in `jakarta.json.bind.config.PropertyNamingStrategy`/`javax.json.bind.config.PropertyNamingStrategy`)\n** A fully-qualified class name of an implementation of a JSON-B property naming strategy (`jakarta.json.bind.config.PropertyNamingStrategy` or `javax.json.bind.config.PropertyNamingStrategy`)\n** A fully-qualified class name of an implementation of a Jackson property naming strategy base class (`com.fasterxml.jackson.databind.PropertyNamingStrategies.NamingBase`). Only the `translate` method is utilized.\n\n* Removal of unused schemas\n+\n[source%nowrap]\n----\nmp.openapi.extensions.smallrye.remove-unused-schemas.enable\n----\nSet to `true` enable automatic removal of unused schemas from `components/schemas` in the OpenAPI model. Unused schemas will be removed following annotation scanning but prior to running any `OASFilter` that may be configured. Default value is `false`.\n\n* Automatic Schema Inheritance\n+\n[source%nowrap]\n----\nmp.openapi.extensions.smallrye.auto-inheritance\n----\nConfigures handling of schema inheritance. Allowed values include `NONE` (default), `BOTH`, and `PARENT_ONLY`.\n** `NONE` disables automatic schema inheritance. Parent class properties will be includes in the properties map of each child class unless `@Schema(allOf = { ... })` has been specified on the child class.\n** `BOTH` enables automatic schema inheritance by placing both the child and parent class within the child schema's `allOf` property _unless_ `@Schema(allOf = { ... })`  has already been specified on the child class. `BOTH` processing can be selectively disabled on individual classes by setting `@Schema(allOf = void.class)` on the child class and no `allOf` will be set on the resulting schema - parent and child properties will be present in the child schema as if `NONE` were used.\n** `PARENT_ONLY` enables automatic schema inheritance by placing only the parent class within the child schema's `allOf` property _unless_ `@Schema(allOf = { ... })`  has already been specified on the child class. `PARENT_ONLY` processing can be selectively disabled on individual classes by setting `@Schema(allOf = void.class)` on the child class and no `allOf` will be set on the resulting schema - parent and child properties will be present in the child schema as if `NONE` were used.\n\n* Duplicate Operation ID Behavior\n+\n[source%nowrap]\n----\nmp.openapi.extensions.smallrye.duplicateOperationIdBehavior\n----\nSet to `FAIL` to abort in case of duplicate operationIds, set to `WARN` to log warnings when the build encounters duplicate operationIds. Default value is `WARN`.\n\n* Maximum Static File Size\n+\n[source%nowrap]\n----\nmp.openapi.extensions.smallrye.maximumStaticFileSize\n----\nSet this value in order to change the maximum threshold for processed static files, when generating model from them. If not set, it will default to 3 MB.\n\n* Merge Schema Examples\n+\n[source%nowrap]\n----\nmp.openapi.extensions.smallrye.merge-schema-examples\n----\nSet this boolean value to disable the merging of the deprecated `@Schema` `example` property into the `examples` array introduced in OAS 3.1.0. If not set, it will default to `true` the deprecated `example` will be mapped to the `examples` array in the OpenAPI model.\n\n* Sorted Parameters\n+\n[source%nowrap]\n----\nmp.openapi.extensions.smallrye.sorted-parameters.enable\n----\nSet this boolean value to enable or disable the sorting of parameter array entries during annotation scanning. When enabled (set to `true`), parameters will be order either by their order within a `@Parameters` annotation on an operation method or (in the absence of that annotation) by their `$ref`, `in`, and `name` attributes. When disabled (set to `false`), parameters will be in the order they are encountered in the Java code. If not set, it will default to `true`.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsmallrye%2Fsmallrye-open-api","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsmallrye%2Fsmallrye-open-api","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsmallrye%2Fsmallrye-open-api/lists"}