{"id":15091399,"url":"https://github.com/openapi4j/openapi4j","last_synced_at":"2025-10-06T10:31:08.256Z","repository":{"id":54130833,"uuid":"218804581","full_name":"openapi4j/openapi4j","owner":"openapi4j","description":"OpenAPI 3 parser, JSON schema and request validator.","archived":true,"fork":false,"pushed_at":"2021-07-09T15:33:59.000Z","size":1297,"stargazers_count":107,"open_issues_count":21,"forks_count":41,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-09-18T06:51:40.283Z","etag":null,"topics":["api","graalvm","java","json-schema","openapi","openapi-specification","openapi3","parser","request","request-validator","rest","schema","schema-validator","servlet","undertow","validation","vertx"],"latest_commit_sha":null,"homepage":"https://www.openapi4j.org/","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/openapi4j.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2019-10-31T15:59:35.000Z","updated_at":"2025-08-27T12:21:31.000Z","dependencies_parsed_at":"2022-08-13T07:10:29.985Z","dependency_job_id":null,"html_url":"https://github.com/openapi4j/openapi4j","commit_stats":null,"previous_names":[],"tags_count":17,"template":false,"template_full_name":null,"purl":"pkg:github/openapi4j/openapi4j","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openapi4j%2Fopenapi4j","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openapi4j%2Fopenapi4j/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openapi4j%2Fopenapi4j/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openapi4j%2Fopenapi4j/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/openapi4j","download_url":"https://codeload.github.com/openapi4j/openapi4j/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openapi4j%2Fopenapi4j/sbom","scorecard":{"id":708818,"data":{"date":"2025-08-11","repo":{"name":"github.com/openapi4j/openapi4j","commit":"e298b5f0599c00888369cb53d0987c99f8933a2c"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":3,"checks":[{"name":"Dangerous-Workflow","score":-1,"reason":"no workflows found","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Maintained","score":0,"reason":"project is archived","details":["Warn: Repository is archived."],"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Token-Permissions","score":-1,"reason":"No tokens found","details":null,"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Code-Review","score":1,"reason":"Found 2/15 approved changesets -- score normalized to 1","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Binary-Artifacts","score":9,"reason":"binaries present in source code","details":["Warn: binary detected: gradle/wrapper/gradle-wrapper.jar:1"],"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Pinned-Dependencies","score":-1,"reason":"no dependencies found","details":null,"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE.md:0","Info: FSF or OSI recognized license: Apache License 2.0: LICENSE.md:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'master'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 17 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}}]},"last_synced_at":"2025-08-22T07:32:35.707Z","repository_id":54130833,"created_at":"2025-08-22T07:32:35.707Z","updated_at":"2025-08-22T07:32:35.707Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":276728649,"owners_count":25694271,"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","status":"online","status_checked_at":"2025-09-24T02:00:09.776Z","response_time":97,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["api","graalvm","java","json-schema","openapi","openapi-specification","openapi3","parser","request","request-validator","rest","schema","schema-validator","servlet","undertow","validation","vertx"],"created_at":"2024-09-25T10:40:57.382Z","updated_at":"2025-10-06T10:31:07.783Z","avatar_url":"https://github.com/openapi4j.png","language":"Java","readme":"[![Build Status](https://travis-ci.com/openapi4j/openapi4j.svg?branch=master)](https://travis-ci.com/openapi4j/openapi4j)\n[![Maintainability Rating](https://sonarcloud.io/api/project_badges/measure?project=org.openapi4j%3Aopenapi4j\u0026metric=sqale_rating)](https://sonarcloud.io/dashboard?id=org.openapi4j%3Aopenapi4j)\n[![Security Rating](https://sonarcloud.io/api/project_badges/measure?project=org.openapi4j%3Aopenapi4j\u0026metric=security_rating)](https://sonarcloud.io/dashboard?id=org.openapi4j%3Aopenapi4j)\n[![Coverage](https://sonarcloud.io/api/project_badges/measure?project=org.openapi4j%3Aopenapi4j\u0026metric=coverage)](https://sonarcloud.io/dashboard?id=org.openapi4j%3Aopenapi4j)\n\n__This repository is now archived. I don't have enough spare time to maintain this project (well actually revamp) and follow OAI specs. This project deserves much more that I can give to source code and followers to provide appropriate output.__\n\n# OpenAPI for java project home\n\nThis is the home page of the openapi4j project for Java (Jakarta or JVM platform in general).\n\nopenapi4j is a suite of tools, including the following :\n* [Open API specification](https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.3.md) parser and validator.\n* Open API [Schema Object](https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.3.md#schemaObject) validator.\n* [JSON reference](https://tools.ietf.org/html/draft-pbryan-zyp-json-ref-03) implementation.\n* Request/response validator against operation.\n* For internal use only, performance project reports some numbers to 'manually' check any improvements or regressions between versions.\n\n## Modules\n\n* [Parser](openapi-parser) allows the (de-)serialization and manipulation of the schema and its validation.\n* [Schema validator](openapi-schema-validator) allows the validation of data against a given schema.\n* [Request validator](openapi-operation-validator) is high level module to manage validation for requests and/or responses against operations. More details in the related project.\n* [Request adapters](openapi-operation-adapters) is the repository of specific adapters to wrap requests and responses.\n\n## Documentation\n\nThe documentation for all modules is available [here](https://openapi4j.github.io/openapi4j/).\n\n## Versioning and compatibility\n\nAll modules follow the [Semantic Versioning 2.0.0](https://semver.org) and are aligned on each release even there's no changes.\n\n```xml\n\u003cdependency\u003e\n    \u003cgroupId\u003eorg.openapi4j\u003c/groupId\u003e\n    \u003cartifactId\u003eopenapi-[module]\u003c/artifactId\u003e\n\u003c/dependency\u003e\n```\n\n[![Release version](https://img.shields.io/nexus/r/org.openapi4j/openapi-operation-validator?style=for-the-badge\u0026color=blue\u0026label=Release\u0026server=https%3A%2F%2Foss.sonatype.org)](https://search.maven.org/search?q=g:org.openapi4j)\n[![Snapshot version](https://img.shields.io/nexus/s/org.openapi4j/openapi-operation-validator?style=for-the-badge\u0026color=blue\u0026label=Snapshot\u0026server=https%3A%2F%2Foss.sonatype.org)](https://oss.sonatype.org/content/repositories/snapshots/org/openapi4j/)\n\nSnapshot is available for latest valid commit on 'master' branch.\n\n## Performance\n\nCheck [here](https://www.openapi4j.org/perf-values.html) for some values.\n\n## Native compilation (GraalVM)\n\nFrom version 0.7, the toolset is fully compliant with native compilation (AOT).\nThis was tested with GraalVM 19.3.1.\nNo further configuration or directive is needed to include the modules if available on classpath.\n\n```shell script\nnative-image -H:+ReportExceptionStackTraces --no-fallback -jar your-app.jar\n```\n\nFYI, testing runs made don't show much performance improvements but parser module.\n\n## Supported versions\n\nThe modules currently support the OpenAPI Specification (OAS) version 3.0.x.\n\nOAI 3.1.0 has been released as candidate.  \nThere's too much changes too keep code on same basis and keep a fairly low level of complexity.  \nAs a consequence, OAI 3.1.x support will be made in a version 2 of openapi4j.  \n\nAs my time is very limited, version 1 should be considered as freezed for now.\n\nSee related projects for limitations and issues.\n\n## Contributing\n\nReporting issues, making comments, ... Any help is welcome !\n\nWe accept Pull Requests via GitHub. There are some guidelines which will make applying PRs easier for us :\n\n* Respect the code style and indentation. .editorconfig file is provided to not be worried about this.\n* Create minimal diffs - disable on save actions like reformat source code or organize imports. If you feel the source code should be reformatted create a separate PR for this change.\n* Provide JUnit tests for your changes and make sure your changes don't break anything by running `gradlew clean check`.\n* Provide a self explanatory but brief commit message with issue reference if any, as it will be reported directly for release changelog.\n\n## License\n\nopenapi4j and all the modules are released under the Apache 2.0 license. See [LICENSE](https://github.com/openapi4j/openapi4j/blob/master/LICENSE.md) for details.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopenapi4j%2Fopenapi4j","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fopenapi4j%2Fopenapi4j","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopenapi4j%2Fopenapi4j/lists"}