From 36141f8563cb38fef743be3d36256d921e88d8bc Mon Sep 17 00:00:00 2001 From: Phillip Kruger Date: Mon, 27 Jul 2020 15:35:08 +0200 Subject: [PATCH] Adding OpenAPI in the Reactive Routes Guide Signed-off-by: Phillip Kruger --- bom/application/pom.xml | 2 +- .../reactive-routes-guide-screenshot01.png | Bin 0 -> 37923 bytes docs/src/main/asciidoc/reactive-routes.adoc | 169 +++++++++++++++++- .../openapi/test/vertx/OpenApiRoute.java | 2 +- .../io/quarkus/it/main/OpenApiTestCase.java | 2 +- 5 files changed, 170 insertions(+), 5 deletions(-) create mode 100644 docs/src/main/asciidoc/images/reactive-routes-guide-screenshot01.png diff --git a/bom/application/pom.xml b/bom/application/pom.xml index 3f879915b7db3..23b9f75c808c7 100644 --- a/bom/application/pom.xml +++ b/bom/application/pom.xml @@ -36,7 +36,7 @@ 1.8.4 2.2.3 2.4.2 - 2.0.4 + 2.0.5 1.0.5 1.3.4 4.3.0 diff --git a/docs/src/main/asciidoc/images/reactive-routes-guide-screenshot01.png b/docs/src/main/asciidoc/images/reactive-routes-guide-screenshot01.png new file mode 100644 index 0000000000000000000000000000000000000000..7c7e180201f398e67502bc8130efbe299fb67177 GIT binary patch literal 37923 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 literal 0 HcmV?d00001 diff --git a/docs/src/main/asciidoc/reactive-routes.adoc b/docs/src/main/asciidoc/reactive-routes.adoc index 8766be5d0bfaa..c2ae084a8cabe 100644 --- a/docs/src/main/asciidoc/reactive-routes.adoc +++ b/docs/src/main/asciidoc/reactive-routes.adoc @@ -352,7 +352,7 @@ Multi people(RoutingContext context) { } ---- -Ths previous snippet produces: +The previous snippet produces: [source, json] ---- @@ -380,7 +380,7 @@ Multi people(RoutingContext context) { } ---- -Ths previous snippet produces: +The previous snippet produces: [source, json] ---- @@ -522,6 +522,171 @@ public class MyFilters { <1> The `RouteFilter#value()` defines the priority used to sort the filters - filters with higher priority are called first. <2> The filter is likely required to call the `next()` method to continue the chain. +== Adding OpenAPI and Swagger UI + +You can add support for link:https://www.openapis.org/[OpenAPI] and link:https://swagger.io/tools/swagger-ui/[Swagger UI] by using the `quarkus-smallrye-openapi` extension. + +Add the extension by running this command: + +[source,bash] +---- +./mvnw quarkus:add-extension -Dextensions="io.quarkus:quarkus-smallrye-openapi" +---- + +This will add the following to your `pom.xml`: + +[source,xml] +---- + + io.quarkus + quarkus-smallrye-openapi + +---- + +This is enough to generate a basic OpenAPI schema document from your Vert.x Routes: + +[source,bash] +---- +curl http://localhost:8080/openapi +---- + +You will see the generated OpenAPI schema document: + +[source, yaml] +---- +--- +openapi: 3.0.3 +info: + title: Generated API + version: "1.0" +paths: + /greetings: + get: + responses: + "204": + description: No Content + /hello: + get: + responses: + "204": + description: No Content + /world: + get: + responses: + "200": + description: OK + content: + '*/*': + schema: + type: string +---- + +Also see <> + +=== Adding MicroProfile OpenAPI Annotations + +You can use link:https://github.com/eclipse/microprofile-open-api[MicroProfile OpenAPI] to better document your schema, +example, adding header info, or specifying the return type on `void` methods might be usefull : + +[source, java] +---- +@OpenAPIDefinition(<1> + info = @Info( + title="Greeting API", + version = "1.0.1", + contact = @Contact( + name = "Greeting API Support", + url = "http://exampleurl.com/contact", + email = "techsupport@example.com"), + license = @License( + name = "Apache 2.0", + url = "http://www.apache.org/licenses/LICENSE-2.0.html")) +) +@ApplicationScoped +public class MyDeclarativeRoutes { + + // neither path nor regex is set - match a path derived from the method name + @Route(methods = HttpMethod.GET) + @APIResponse(responseCode="200", + description="Say hello", + content=@Content(mediaType="application/json", schema=@Schema(type=SchemaType.STRING)))<2> + void hello(RoutingContext rc) { + rc.response().end("hello"); + } + + @Route(path = "/world") + String helloWorld() { + return "Hello world!"; + } + + @Route(path = "/greetings", methods = HttpMethod.GET) + @APIResponse(responseCode="200", + description="Greeting", + content=@Content(mediaType="application/json", schema=@Schema(type=SchemaType.STRING))) + void greetings(RoutingExchange ex) { + ex.ok("hello " + ex.getParam("name").orElse("world")); + } +} +---- + +<1> Header information about your API. +<2> Defining the response + +This will generate this OpenAPI schema: + +[source, yaml] +---- +--- +openapi: 3.0.3 +info: + title: Greeting API + contact: + name: Greeting API Support + url: http://exampleurl.com/contact + email: techsupport@example.com + license: + name: Apache 2.0 + url: http://www.apache.org/licenses/LICENSE-2.0.html + version: 1.0.1 +paths: + /greetings: + get: + responses: + "200": + description: Greeting + content: + application/json: + schema: + type: string + /hello: + get: + responses: + "200": + description: Say hello + content: + application/json: + schema: + type: string + /world: + get: + responses: + "200": + description: OK + content: + '*/*': + schema: + type: string +---- + +=== Using Swagger UI + +Swagger UI is included by default when running in `dev` or `test` mode, and can optionally added to `prod` mode. +See <> Guide for more details. + +Navigate to link:http://localhost:8080/swagger-ui/[localhost:8080/swagger-ui/] and you will see the Swagger UI screen: + +image:reactive-routes-guide-screenshot01.png[alt=Swagger UI] + == Conclusion This guide has introduced how you can use reactive routes to define an HTTP endpoint. diff --git a/extensions/smallrye-openapi/deployment/src/test/java/io/quarkus/smallrye/openapi/test/vertx/OpenApiRoute.java b/extensions/smallrye-openapi/deployment/src/test/java/io/quarkus/smallrye/openapi/test/vertx/OpenApiRoute.java index 03c861247d289..5ebeec125a29d 100644 --- a/extensions/smallrye-openapi/deployment/src/test/java/io/quarkus/smallrye/openapi/test/vertx/OpenApiRoute.java +++ b/extensions/smallrye-openapi/deployment/src/test/java/io/quarkus/smallrye/openapi/test/vertx/OpenApiRoute.java @@ -11,7 +11,7 @@ @RouteBase(path = "resource", consumes = "application/json", produces = "application/json") public class OpenApiRoute { - @Route(methods = HttpMethod.GET) + @Route(path = "/", methods = HttpMethod.GET) public String root() { return "resource"; } diff --git a/integration-tests/main/src/test/java/io/quarkus/it/main/OpenApiTestCase.java b/integration-tests/main/src/test/java/io/quarkus/it/main/OpenApiTestCase.java index 1500071cd76e2..8de79bbffcc19 100644 --- a/integration-tests/main/src/test/java/io/quarkus/it/main/OpenApiTestCase.java +++ b/integration-tests/main/src/test/java/io/quarkus/it/main/OpenApiTestCase.java @@ -42,7 +42,7 @@ public void testOpenAPIJSON() throws Exception { JsonObject obj = parser.readObject(); Assertions.assertNotNull(obj); - Assertions.assertEquals("3.0.1", obj.getString("openapi")); + Assertions.assertEquals("3.0.3", obj.getString("openapi")); Assertions.assertEquals("Generated API", obj.getJsonObject("info").getString("title")); Assertions.assertEquals("1.0", obj.getJsonObject("info").getString("version"));