All Projects → openapi4j → openapi4j

openapi4j / openapi4j

Licence: Apache-2.0 license
OpenAPI 3 parser, JSON schema and request validator.

Programming Languages

java
68154 projects - #9 most used programming language
shell
77523 projects

Projects that are alternatives of or similar to openapi4j

Apispec
A pluggable API specification generator. Currently supports the OpenAPI Specification (f.k.a. the Swagger specification)..
Stars: ✭ 831 (+803.26%)
Mutual labels:  json-schema, openapi, openapi-specification, openapi3
Spectral
A flexible JSON/YAML linter for creating automated style guides, with baked in support for OpenAPI v2 & v3.
Stars: ✭ 876 (+852.17%)
Mutual labels:  json-schema, openapi, openapi-specification, openapi3
openapi-schemas
JSON Schemas for every version of the OpenAPI Specification
Stars: ✭ 22 (-76.09%)
Mutual labels:  json-schema, openapi, openapi-specification, openapi3
Full Stack Fastapi Postgresql
Full stack, modern web application generator. Using FastAPI, PostgreSQL as database, Docker, automatic HTTPS and more.
Stars: ✭ 7,635 (+8198.91%)
Mutual labels:  json-schema, openapi, openapi3
Openapi Diff
Utility for comparing two OpenAPI specifications.
Stars: ✭ 208 (+126.09%)
Mutual labels:  openapi, openapi-specification, openapi3
php-json-schema-model-generator
Creates (immutable) PHP model classes from JSON-Schema files including all validation rules as PHP code
Stars: ✭ 36 (-60.87%)
Mutual labels:  json-schema, openapi, openapi3
Springdoc Openapi
Library for OpenAPI 3 with spring-boot
Stars: ✭ 1,113 (+1109.78%)
Mutual labels:  openapi, openapi-specification, openapi3
Fastapi
FastAPI framework, high performance, easy to learn, fast to code, ready for production
Stars: ✭ 39,588 (+42930.43%)
Mutual labels:  json-schema, openapi, openapi3
Openapi Core
OpenAPI core
Stars: ✭ 119 (+29.35%)
Mutual labels:  schema, openapi, openapi3
Full Stack Fastapi Couchbase
Full stack, modern web application generator. Using FastAPI, Couchbase as database, Docker, automatic HTTPS and more.
Stars: ✭ 243 (+164.13%)
Mutual labels:  json-schema, openapi, openapi3
Spot
Spot is a concise, developer-friendly way to describe your API contract.
Stars: ✭ 230 (+150%)
Mutual labels:  json-schema, openapi, openapi3
openapi-schema-validator
OpenAPI schema validator for Python
Stars: ✭ 35 (-61.96%)
Mutual labels:  schema, openapi, openapi3
Redoc
📘 OpenAPI/Swagger-generated API Reference Documentation
Stars: ✭ 15,935 (+17220.65%)
Mutual labels:  openapi, openapi-specification, openapi3
Swurg
Parse OpenAPI documents into Burp Suite for automating OpenAPI-based APIs security assessments (approved by PortSwigger for inclusion in their official BApp Store).
Stars: ✭ 94 (+2.17%)
Mutual labels:  openapi, openapi-specification, openapi3
Openapivalidators
Use Jest or Chai to assert that HTTP responses satisfy an OpenAPI spec
Stars: ✭ 77 (-16.3%)
Mutual labels:  openapi, openapi-specification, openapi3
Jsonschema
An implementation of the JSON Schema specification for Python
Stars: ✭ 3,474 (+3676.09%)
Mutual labels:  schema, json-schema, openapi
Oas Kit
Convert Swagger 2.0 definitions to OpenAPI 3.0 and resolve/validate/lint
Stars: ✭ 516 (+460.87%)
Mutual labels:  openapi, openapi-specification, openapi3
Swagger Core
Examples and server integrations for generating the Swagger API Specification, which enables easy access to your REST API
Stars: ✭ 6,898 (+7397.83%)
Mutual labels:  openapi, openapi-specification, openapi3
Uvicorn Gunicorn Fastapi Docker
Docker image with Uvicorn managed by Gunicorn for high-performance FastAPI web applications in Python 3.6 and above with performance auto-tuning. Optionally with Alpine Linux.
Stars: ✭ 1,014 (+1002.17%)
Mutual labels:  json-schema, openapi, openapi3
thema
A CUE-based framework for portable, evolvable schema
Stars: ✭ 41 (-55.43%)
Mutual labels:  schema, openapi, openapi3

Build Status Maintainability Rating Security Rating Coverage

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.

OpenAPI for java project home

This is the home page of the openapi4j project for Java (Jakarta or JVM platform in general).

openapi4j is a suite of tools, including the following :

  • Open API specification parser and validator.
  • Open API Schema Object validator.
  • JSON reference implementation.
  • Request/response validator against operation.
  • For internal use only, performance project reports some numbers to 'manually' check any improvements or regressions between versions.

Modules

  • Parser allows the (de-)serialization and manipulation of the schema and its validation.
  • Schema validator allows the validation of data against a given schema.
  • Request validator is high level module to manage validation for requests and/or responses against operations. More details in the related project.
  • Request adapters is the repository of specific adapters to wrap requests and responses.

Documentation

The documentation for all modules is available here.

Versioning and compatibility

All modules follow the Semantic Versioning 2.0.0 and are aligned on each release even there's no changes.

<dependency>
    <groupId>org.openapi4j</groupId>
    <artifactId>openapi-[module]</artifactId>
</dependency>

Release version Snapshot version

Snapshot is available for latest valid commit on 'master' branch.

Performance

Check here for some values.

Native compilation (GraalVM)

From version 0.7, the toolset is fully compliant with native compilation (AOT). This was tested with GraalVM 19.3.1. No further configuration or directive is needed to include the modules if available on classpath.

native-image -H:+ReportExceptionStackTraces --no-fallback -jar your-app.jar

FYI, testing runs made don't show much performance improvements but parser module.

Supported versions

The modules currently support the OpenAPI Specification (OAS) version 3.0.x.

OAI 3.1.0 has been released as candidate.
There's too much changes too keep code on same basis and keep a fairly low level of complexity.
As a consequence, OAI 3.1.x support will be made in a version 2 of openapi4j.

As my time is very limited, version 1 should be considered as freezed for now.

See related projects for limitations and issues.

Contributing

Reporting issues, making comments, ... Any help is welcome !

We accept Pull Requests via GitHub. There are some guidelines which will make applying PRs easier for us :

  • Respect the code style and indentation. .editorconfig file is provided to not be worried about this.
  • 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.
  • Provide JUnit tests for your changes and make sure your changes don't break anything by running gradlew clean check.
  • Provide a self explanatory but brief commit message with issue reference if any, as it will be reported directly for release changelog.

License

openapi4j and all the modules are released under the Apache 2.0 license. See LICENSE for details.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].