Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

WFLY-19591 MicroProfile OpenAPI 4.0 #648

Open
wants to merge 1 commit into
base: main
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
139 changes: 139 additions & 0 deletions microprofile/WFLY-19591_MicroProfile_OpenAPI_4.0.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,139 @@
---
pferraro marked this conversation as resolved.
Show resolved Hide resolved
categories:
- microprofile
stability-level: default
issue: https://github.com/wildfly/wildfly-proposals/issues/647
feature-team:
developer: pferraro
sme:
- pferraro
outside-perspective:
-
promotes:
promoted-by:
---

:IssueId: WFLY-19591
:ParentIssueId: WFLY-19588
:OldOpenAPIVersion: 3.0
:NewOpenAPIVersion: 3.1
:OldMicroProfileOpenAPIVersion: 3.1
:NewMicroProfileOpenAPIVersion: 4.0
:MicroProfileOpenAPIReleaseNotesAnchor: release_notes_40
:SmallRyeOpenAPIVersion: 4.0.x
:MicroProfilePlatformVersion: 7.0

= MicroProfile OpenAPI {NewMicroProfileOpenAPIVersion}
:author: Paul Ferraro
:email: paul.ferraro@redhat.com
:toc: left
:icons: font
:idprefix:
:idseparator: -

== Overview

WildFly currently provides MicroProfile OpenAPI {OldMicroProfileOpenAPIVersion} support to applications to expose an `/openapi` endpoint that serves an OpenAPI {OldOpenAPIVersion} document of the application's Jakarta RESTful Web Services.
This feature request upgrades support for this specification to version {NewMicroProfileOpenAPIVersion} as part of version {MicroProfilePlatformVersion} of the MicroProfile platform specification.

Most notably, this release of the https://download.eclipse.org/microprofile/microprofile-open-api-{NewMicroProfileOpenAPIVersion}/microprofile-openapi-spec-{NewMicroProfileOpenAPIVersion}.html[MicroProfile OpenAPI specification] generates OpenAPI documentation conforming to https://github.com/OAI/OpenAPI-Specification/blob/{NewOpenAPIVersion}.0/versions/{NewOpenAPIVersion}.0.md[version {NewOpenAPIVersion} of the OpenAPI specification].

For details, see the https://download.eclipse.org/microprofile/microprofile-open-api-{NewMicroProfileOpenAPIVersion}/microprofile-openapi-spec-{NewMicroProfileOpenAPIVersion}.html#{MicroProfileOpenAPIReleaseNotesAnchor}[Release Notes].

=== User Stories

A user would like to expose an endpoint that serves an OpenAPI {NewOpenAPIVersion} document describing the Jakarta RESTful Web Services of their application.

== Issue Metadata

* https://issues.redhat.com/browse/{IssueId}[{IssueId}]

=== Related Issues

* https://issues.redhat.com/browse/{ParentIssueId}[{ParentIssueId}]

=== Affected Projects or Components

pferraro marked this conversation as resolved.
Show resolved Hide resolved
* WildFly Quickstarts (updates to version numbers references only)

=== Other Interested Projects

pferraro marked this conversation as resolved.
Show resolved Hide resolved
* https://github.com/eclipse/microprofile-open-api[Eclipse MicroProfile OpenAPI]
* https://github.com/smallrye/smallrye-open-api[SmallRye OpenAPI]

=== Relevant Installation Types

* Traditional standalone server (unzipped or provisioned by Galleon)
* Managed domain
* OpenShift Source-to-Image (S2I)
* Bootable jar

== Requirements

* Upgrade version of MicroProfile OpenAPI specification API from {OldMicroProfileOpenAPIVersion} to {NewMicroProfileOpenAPIVersion}.
* Upgrade version of SmallRye OpenAPI to the final {SmallRyeOpenAPIVersion} release that implements the new spec version.

=== Changed requirements

N/A

=== Non-Requirements

N/A

=== Future Work

N/A

== Backwards Compatibility

=== Default Configuration

N/A

=== Importing Existing Configuration

N/A

=== Deployments

See https://download.eclipse.org/microprofile/microprofile-open-api-{NewMicroProfileOpenAPIVersion}/microprofile-openapi-spec-{NewMicroProfileOpenAPIVersion}.html#{MicroProfileOpenAPIReleaseNotesAnchor}[Release Notes] for the list of incompatible changes between the current and previous versions of the MicroProfile OpenAPI specification.

=== Interoperability

N/A

== Implementation Plan

The implementation of MicroProfile OpenAPI {NewMicroProfileOpenAPIVersion} is provided by SmallRye OpenAPI {SmallRyeOpenAPIVersion}.
The implemetation plan consist of simple version upgrade of the following components:

* org.eclipse.microprofile.openapi API
* org.eclipse.microprofile.openapi TCK
* io.smallrye.openapi

== Admin Clients

N/A

== Security Considerations

N/A

[[test_plan]]
== Test Plan

The following testsuites will be used to validate this feature:

* Version {NewMicroProfileOpenAPIVersion} of the MicroProfile OpenAPI TCK
* The existing MicroProfile OpenAPI tests within WildFly's MicroProfile integration testsuite.
* The MicroProfile OpenAPI tests from https://github.com/jboss-eap-qe/eap-microprofile-test-suite

pferraro marked this conversation as resolved.
Show resolved Hide resolved
== Community Documentation

References the MicroProfile OpenAPI and OpenAPI specifications need to be updated to reflect the current versions.

== Release Note Content

Support for the MicroProfile OpenAPI specification was updated from {OldMicroProfileOpenAPIVersion} to {NewMicroProfileOpenAPIVersion}.