You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@camel.apache.org by "Karen Lease (Jira)" <ji...@apache.org> on 2022/01/21 16:38:00 UTC

[jira] [Resolved] (CAMEL-17491) camel-openapi-java - Operation paths are incorrect if contextPath is set

     [ https://issues.apache.org/jira/browse/CAMEL-17491?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Karen Lease resolved CAMEL-17491.
---------------------------------
    Resolution: Fixed

> camel-openapi-java - Operation paths are incorrect if contextPath is set
> ------------------------------------------------------------------------
>
>                 Key: CAMEL-17491
>                 URL: https://issues.apache.org/jira/browse/CAMEL-17491
>             Project: Camel
>          Issue Type: Bug
>          Components: camel-openapi-java
>    Affects Versions: 3.13.0, 3.14.0
>            Reporter: James Netherton
>            Assignee: Karen Lease
>            Priority: Major
>             Fix For: 3.15.0
>
>
> Consider this REST configuration:
> {code}
> restConfiguration()
>     .host("localhost")
>     .apiHost("localhost")
>     .contextPath("/api")
>     .port(8080)
>     .apiContextPath("/api-docs");
> rest("/service")
>     .get("/testing").description("Test Service")
>     .outType(String.class)
>     .route().setBody().constant("Hello World");
> {code}
> The 'paths' object in the generated OpenAPI document is incorrect. It should not have the '/api' context path prefix.
> {code}
> {
>   "openapi" : "3.0.2",
>   "info" : { },
>   "servers" : [ {
>     "url" : "/api"
>   } ],
>   "paths" : {
>     "/api/service/testing" : {
>       "get" : {
>         "tags" : [ "/service" ],
>         "responses" : {
>           "200" : { }
>         },
>         "operationId" : "verb1",
>         "summary" : "Test Service"
>       }
>     }
>   },
>   "components" : { },
>   "tags" : [ {
>     "name" : "/service"
>   } ]
> }
> {code}
> The OpenAPI spec states: 
> "Unless specified otherwise, all properties that are URLs MAY be relative references as defined by RFC3986. Relative references are resolved using the URLs defined in the Server Object as a Base URI.".
> If you try to execute the service in the Swagger UI, then it tries to hit http://localhost:8080/api/api/service/testing (duplicate /api/api in the path).
> Maybe the code we had before CAMEL-17063 was implemented was more correct?



--
This message was sent by Atlassian Jira
(v8.20.1#820001)