[
https://issues.apache.org/jira/browse/CAMEL-12943?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16691608#comment-16691608
]
Dmitry Volodin commented on CAMEL-12943:
----------------------------------------
[~tdiesler], oh, I will look at this. Is it possible to run this test locally?
> Rest DSL generates invalid swagger operation Id
> -----------------------------------------------
>
> Key: CAMEL-12943
> URL: https://issues.apache.org/jira/browse/CAMEL-12943
> Project: Camel
> Issue Type: Bug
> Components: camel-swagger
> Reporter: Thomas Diesler
> Assignee: Dmitry Volodin
> Priority: Major
> Fix For: 2.23.0
>
>
> With this code
>
> {code:java}
> rest("/customers").description("Customers REST service")
> .get("/\{id}")
> .bindingMode(RestBindingMode.auto)
> .id("getCustomerById")
> .description("Retrieves a customer for the specified id")
> .outType(Customer.class)
> .route()
> .process(exchange -> {
> Customer customer = new Customer();
> customer.setId(exchange.getIn().getHeader("id",
> Integer.class));
> customer.setFirstName("Kermit");
> customer.setLastName("The Frog");
> exchange.getOut().setBody(customer);
> })
> .endRest();
> {code}
>
> we see a swagger definition generated like this
>
> {code:java}
> "paths" : {
> "/customers/\{id}" : {
> "get" : {
> "tags" : [ "customers" ],
> "summary" : "Retrieves a customer for the specified id",
> "operationId" : "route2",
> "parameters" : [ {
> "name" : "id",
> "in" : "path",
> "required" : true,
> "type" : "string"
> } ],
> "responses" : {
> "200" : {
> "description" : "Output type",
> "schema" : {
> "$ref" : "#/definitions/Customer",
> "originalRef" : "Customer"
> },
> "responseSchema" : {
> "$ref" : "#/definitions/Customer",
> "originalRef" : "Customer"
> }
> }
> }
> }
> }
> },
> {code}
>
> The operationId seems to be incorrect.
>
> In our testsuite, which checks the latest Camel HEAD every Monday, we see ...
>
> {code:java}
> Caused by: java.lang.IllegalArgumentException: The specified operation with
> ID: `getCustomerById` cannot be found in the Swagger specification loaded
> from `http://localhost:8080/api/swagger`. Operations defined in the
> specification are: route2
> at
> org.apache.camel.component.rest.swagger.RestSwaggerEndpoint.createProducer(RestSwaggerEndpoint.java:198)
> at
> org.apache.camel.impl.ProducerCache.doGetProducer(ProducerCache.java:573)
> ... 190 more
> {code}
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)