Details
-
Bug
-
Status: Resolved
-
Minor
-
Resolution: Fixed
-
3.1.0
-
None
-
Unknown
Description
In camel-swagger-java, for this service
<rest id="4f777f7b-f2fd-4107-8271-a50640d4525c" path="/path" produces="application/json">
<get id="026ea872-e2f8-4772-8d10-6482b8549f11"
produces="application/json" uri="/get">
<description/>
<responseMessage message="OK" code="200" />
<to uri="direct-vm://restLink"/>
</get>
<get id="247f814f-5970-4cc1-975d-374195ff9b42"
produces="application/json" uri="/get2">
<description/>
<responseMessage message="OK" code="200" />
<to uri="direct-vm://restLink"/>
</get>
</rest>
I get next swagger.json, which does not pass validation because
Semantic error at paths./path/get2.get.operationId
Operations must have unique operationIds.
{ "swagger" : "2.0", "info" :
{ "version" : "1.0", "title" : "REST API" }, "host" : "0.0.0.0:9090", "basePath" : "/fesb-rest", "tags" : [ { "name" : "path" } ], "schemes" : [ "http", "https" ], "paths" : { "/path/get" : { "get" : { "tags" : [ "path" ], "summary" : "", "operationId" : "4f777f7b-f2fd-4107-8271-a50640d4525c", "produces" : [ "application/json" ], "responses" : { "200" : { "description" : "OK" } } } }, "/path/get2" : { "get" : { "tags" : [ "path" ], "summary" : "", "operationId" : "4f777f7b-f2fd-4107-8271-a50640d4525c", "produces" : [ "application/json" ], "responses" : { "200" : { "description" : "OK" } } } } } }
I need the id of the methods and not the service to be used, while the service id should remain
I looked at the code and found the following in the class RestSwaggerReader.
String operationId = (String)Optional.ofNullable(rest.getId()).orElse(routeId);
op.operationId(operationId);