You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by kl...@apache.org on 2023/08/31 20:50:39 UTC

[camel] branch fix-openapi created (now 5b26d1b182f)

This is an automated email from the ASF dual-hosted git repository.

klease pushed a change to branch fix-openapi
in repository https://gitbox.apache.org/repos/asf/camel.git


      at 5b26d1b182f CAMEL-19818: handle all schema references in response types. (#11262)

This branch includes the following new commits:

     new 5b26d1b182f CAMEL-19818: handle all schema references in response types. (#11262)

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.



[camel] 01/01: CAMEL-19818: handle all schema references in response types. (#11262)

Posted by kl...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

klease pushed a commit to branch fix-openapi
in repository https://gitbox.apache.org/repos/asf/camel.git

commit 5b26d1b182fd0b208133e67ecbf3bb51f52b047e
Author: klease <kl...@cegetel.net>
AuthorDate: Thu Aug 31 22:49:44 2023 +0200

    CAMEL-19818: handle all schema references in response types. (#11262)
---
 .../java/org/apache/camel/openapi/RestOpenApiReader.java   | 14 ++++++++------
 .../apache/camel/openapi/RestOpenApiReaderModelTest.java   |  2 ++
 2 files changed, 10 insertions(+), 6 deletions(-)

diff --git a/components/camel-openapi-java/src/main/java/org/apache/camel/openapi/RestOpenApiReader.java b/components/camel-openapi-java/src/main/java/org/apache/camel/openapi/RestOpenApiReader.java
index f5e38ebff75..6c298f46b6b 100644
--- a/components/camel-openapi-java/src/main/java/org/apache/camel/openapi/RestOpenApiReader.java
+++ b/components/camel-openapi-java/src/main/java/org/apache/camel/openapi/RestOpenApiReader.java
@@ -1066,7 +1066,7 @@ public class RestOpenApiReader {
                 Parameter parameter, Operation operation, ApiDescription api,
                 Map<String, List<String>> params, Map<String, String> cookies, Map<String, List<String>> headers) {
             if (parameter.getContent() != null) {
-                processRefsInContent(parameter.getContent());
+                processRefsInContent(parameter.getContent(), params, cookies, headers);
             }
             return Optional.of(parameter);
         }
@@ -1076,7 +1076,7 @@ public class RestOpenApiReader {
                 RequestBody requestBody, Operation operation, ApiDescription api,
                 Map<String, List<String>> params, Map<String, String> cookies, Map<String, List<String>> headers) {
             if (requestBody.getContent() != null) {
-                processRefsInContent(requestBody.getContent());
+                processRefsInContent(requestBody.getContent(), params, cookies, headers);
             }
             return Optional.of(requestBody);
         }
@@ -1086,7 +1086,7 @@ public class RestOpenApiReader {
                 ApiResponse response, Operation operation, ApiDescription api,
                 Map<String, List<String>> params, Map<String, String> cookies, Map<String, List<String>> headers) {
             if (response.getContent() != null) {
-                processRefsInContent(response.getContent());
+                processRefsInContent(response.getContent(), params, cookies, headers);
             }
             return Optional.of(response);
         }
@@ -1135,10 +1135,12 @@ public class RestOpenApiReader {
             return Optional.of(schema);
         }
 
-        private void processRefsInContent(Content content) {
+        private void processRefsInContent(
+                Content content, Map<String, List<String>> params,
+                Map<String, String> cookies, Map<String, List<String>> headers) {
             for (MediaType media : content.values()) {
-                if (media.getSchema() != null && media.getSchema().get$ref() != null) {
-                    media.getSchema().set$ref(fixSchemaReference(media.getSchema().get$ref(), OAS30_SCHEMA_DEFINITION_PREFIX));
+                if (media.getSchema() != null) {
+                    filterSchema(media.getSchema(), params, cookies, headers);
                 }
             }
         }
diff --git a/components/camel-openapi-java/src/test/java/org/apache/camel/openapi/RestOpenApiReaderModelTest.java b/components/camel-openapi-java/src/test/java/org/apache/camel/openapi/RestOpenApiReaderModelTest.java
index e343c16bfb5..2d630abb16e 100644
--- a/components/camel-openapi-java/src/test/java/org/apache/camel/openapi/RestOpenApiReaderModelTest.java
+++ b/components/camel-openapi-java/src/test/java/org/apache/camel/openapi/RestOpenApiReaderModelTest.java
@@ -89,6 +89,7 @@ public class RestOpenApiReaderModelTest extends CamelTestSupport {
         assertTrue(json.contains("\"host\" : \"localhost:8080\""));
         assertTrue(json.contains("\"description\" : \"The user returned\""));
         assertTrue(json.contains("\"$ref\" : \"#/definitions/User\""));
+        assertFalse(json.contains("\"$ref\" : \"#/definitions/org.apache.camel.openapi.User\""));
         assertTrue(json.contains("\"x-className\""));
         assertTrue(json.contains("\"format\" : \"org.apache.camel.openapi.User\""));
         assertTrue(json.contains("\"type\" : \"string\""));
@@ -119,6 +120,7 @@ public class RestOpenApiReaderModelTest extends CamelTestSupport {
         assertTrue(json.contains("\"url\" : \"http://localhost:8080/api\""));
         assertTrue(json.contains("\"description\" : \"The user returned\""));
         assertTrue(json.contains("\"$ref\" : \"#/components/schemas/User\""));
+        assertFalse(json.contains("\"$ref\" : \"#/components/schemas/org.apache.camel.openapi.User\""));
         assertTrue(json.contains("\"format\" : \"org.apache.camel.openapi.User\""));
         assertTrue(json.contains("\"type\" : \"string\""));
         assertTrue(json.contains("\"format\" : \"date\""));