[ https://issues.apache.org/jira/browse/NIFI-7498?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
endzeit updated NIFI-7498: -------------------------- Description: The swagger.json generated during the NiFi build process makes use of the parameter _operationId_. According to the [OpenAPI Specification version 2|https://swagger.io/docs/specification/2-0/paths-and-operations/] each "operation may specify a *unique* operationId". However the swagger.json generated by NiFi makes use of the same operationId multiple times - resulting in the CLI complaining about errors, see below. h1. Affected endpoints: Based on the error message, the following operationIds are used by multiple api paths: {noformat} getPropertyDescriptor - /controller-services/{id}/descriptors - /processors/{id}/descriptors - /reporting-tasks/{id}/descriptors getState - /controller-services/{id}/state - /processors/{id}/state - /reporting-tasks/{id}/state - /remote-process-groups/{id}/state createControllerService - /controller/controller-services - /process-groups/{id}/controller-services deleteUpdateRequest - /parameter-contexts/{contextId}/update-requests/{requestId} - /versions/update-requests/{id} updateRunStatus - /controller-services/{id}/run-status - /input-ports/{id}/run-status - /reporting-tasks/{id}/run-status - /processors/{id}/run-status - /output-ports/{id}/run-status clearState - /controller-services/{id}/state/clear-requests - /reporting-tasks/{id}/state/clear-requests - /processors/{id}/state/clear-requests{noformat} h1. Steps to reproduce: 1. Build NiFi using the newest sources 2. Use the openapi-generator CLI to generate a client based on the generated swagger.json {code:java} java -jar openapi-generator-cli.jar generate -i swagger.json -g kotlin {code} 3. CLI fails with error message {code:java} Exception in thread "main" org.openapitools.codegen.SpecValidationException: There were issues with the specification. The option can be disabled via validateSpec (Maven/Gradle) or --skip-validate-spec (CLI). | Error count: 13, Warning count: 0 Errors: -attribute paths.'/processors/{id}/descriptors'(get).operationId is repeated -attribute paths.'/input-ports/{id}/run-status'(put).operationId is repeated -attribute paths.'/process-groups/{id}/controller-services'(post).operationId is repeated -attribute paths.'/processors/{id}/state'(get).operationId is repeated -attribute paths.'/reporting-tasks/{id}/state'(get).operationId is repeated -attribute paths.'/versions/update-requests/{id}'(delete).operationId is repeated -attribute paths.'/output-ports/{id}/run-status'(put).operationId is repeated -attribute paths.'/remote-process-groups/{id}/state'(get).operationId is repeated -attribute paths.'/processors/{id}/state/clear-requests'(post).operationId is repeated -attribute paths.'/reporting-tasks/{id}/run-status'(put).operationId is repeated -attribute paths.'/processors/{id}/run-status'(put).operationId is repeated -attribute paths.'/reporting-tasks/{id}/state/clear-requests'(post).operationId is repeated -attribute paths.'/reporting-tasks/{id}/descriptors'(get).operationId is repeated at org.openapitools.codegen.config.CodegenConfigurator.toContext(CodegenConfigurator.java:480) at org.openapitools.codegen.config.CodegenConfigurator.toClientOptInput(CodegenConfigurator.java:507) at org.openapitools.codegen.cmd.Generate.execute(Generate.java:423) at org.openapitools.codegen.cmd.OpenApiGeneratorCommand.run(OpenApiGeneratorCommand.java:32) at org.openapitools.codegen.OpenAPIGenerator.main(OpenAPIGenerator.java:61) {code} h1. Additional information: The plugin _com.github.kongchen:swagger-maven-plugin:3.1.5_ is used to generate the swagger.json file. It allows to define the format of the operationId by passing in a new _operationIdFormat_. The default is "methodName" - which is causing the problem described. However the plugin itself recommends using "className_methodName_httpMethod" as operationId - which would resolve the error caused by the duplicate usage. was: The swagger.json generated during the NiFi build process makes use of the parameter _operationId_. According to the [OpenAPI Specification version 2|https://swagger.io/docs/specification/2-0/paths-and-operations/] each "operation may specify a *unique* operationId". However the swagger.json generated by NiFi makes use of the same operationId multiple times - resulting in the CLI complaining about errors, see below. h1. Affected endpoints: Based on the error message, the following operationIds are used by multiple api paths: {noformat} getPropertyDescriptor - /controller-services/{id}/descriptors - /processors/{id}/descriptors - /reporting-tasks/{id}/descriptors getState - /controller-services/{id}/state - /processors/{id}/state - /reporting-tasks/{id}/state - /remote-process-groups/{id}/state createControllerService - /controller/controller-services - /process-groups/{id}/controller-services deleteUpdateRequest - /parameter-contexts/{contextId}/update-requests/{requestId} - /versions/update-requests/{id} updateRunStatus - /controller-services/{id}/run-status - /input-ports/{id}/run-status - /reporting-tasks/{id}/run-status - /processors/{id}/run-status - /output-ports/{id}/run-status clearState - /controller-services/{id}/state/clear-requests - /reporting-tasks/{id}/state/clear-requests - /processors/{id}/state/clear-requests{noformat} h1. Steps to reproduce: 1. Build NiFi using the newest sources 2. Use the openapi-generator CLI to generate a client based on the generated swagger.json {code:java} java -jar openapi-generator-cli.jar generate -i swagger.json -g kotlin {code} 3. CLI fails with error message {code:java} Exception in thread "main" org.openapitools.codegen.SpecValidationException: There were issues with the specification. The option can be disabled via validateSpec (Maven/Gradle) or --skip-validate-spec (CLI). | Error count: 13, Warning count: 0 Errors: -attribute paths.'/processors/{id}/descriptors'(get).operationId is repeated -attribute paths.'/input-ports/{id}/run-status'(put).operationId is repeated -attribute paths.'/process-groups/{id}/controller-services'(post).operationId is repeated -attribute paths.'/processors/{id}/state'(get).operationId is repeated -attribute paths.'/reporting-tasks/{id}/state'(get).operationId is repeated -attribute paths.'/versions/update-requests/{id}'(delete).operationId is repeated -attribute paths.'/output-ports/{id}/run-status'(put).operationId is repeated -attribute paths.'/remote-process-groups/{id}/state'(get).operationId is repeated -attribute paths.'/processors/{id}/state/clear-requests'(post).operationId is repeated -attribute paths.'/reporting-tasks/{id}/run-status'(put).operationId is repeated -attribute paths.'/processors/{id}/run-status'(put).operationId is repeated -attribute paths.'/reporting-tasks/{id}/state/clear-requests'(post).operationId is repeated -attribute paths.'/reporting-tasks/{id}/descriptors'(get).operationId is repeated at org.openapitools.codegen.config.CodegenConfigurator.toContext(CodegenConfigurator.java:480) at org.openapitools.codegen.config.CodegenConfigurator.toClientOptInput(CodegenConfigurator.java:507) at org.openapitools.codegen.cmd.Generate.execute(Generate.java:423) at org.openapitools.codegen.cmd.OpenApiGeneratorCommand.run(OpenApiGeneratorCommand.java:32) at org.openapitools.codegen.OpenAPIGenerator.main(OpenAPIGenerator.java:61) {code} h1. Additional information: The plugin _com.github.kongchen:swagger-maven-plugin:3.1.5_ is used to generate the swagger.json file. It allows to define the format of the operationId by passing in a new _operationIdFormat_. The default is "{{_{{methodName}}}}_" - which is causing the problem described. However the plugin itself recommends using "{{_{{className}}_{{}}_{{methodName}}_{{}}_{{httpMethod}}}}_" as operationId - which would resolve the error caused by the duplicate usage. > Repeated operationId in swagger.json > ------------------------------------ > > Key: NIFI-7498 > URL: https://issues.apache.org/jira/browse/NIFI-7498 > Project: Apache NiFi > Issue Type: Bug > Affects Versions: 1.11.4 > Reporter: endzeit > Priority: Major > > The swagger.json generated during the NiFi build process makes use of the > parameter _operationId_. According to the [OpenAPI Specification version > 2|https://swagger.io/docs/specification/2-0/paths-and-operations/] each > "operation may specify a *unique* operationId". > However the swagger.json generated by NiFi makes use of the same operationId > multiple times - resulting in the CLI complaining about errors, see below. > h1. Affected endpoints: > Based on the error message, the following operationIds are used by multiple > api paths: > {noformat} > getPropertyDescriptor > - /controller-services/{id}/descriptors > - /processors/{id}/descriptors > - /reporting-tasks/{id}/descriptors > getState > - /controller-services/{id}/state > - /processors/{id}/state > - /reporting-tasks/{id}/state > - /remote-process-groups/{id}/state > createControllerService > - /controller/controller-services > - /process-groups/{id}/controller-services > deleteUpdateRequest > - /parameter-contexts/{contextId}/update-requests/{requestId} > - /versions/update-requests/{id} > updateRunStatus > - /controller-services/{id}/run-status > - /input-ports/{id}/run-status > - /reporting-tasks/{id}/run-status > - /processors/{id}/run-status > - /output-ports/{id}/run-status > clearState > - /controller-services/{id}/state/clear-requests > - /reporting-tasks/{id}/state/clear-requests > - /processors/{id}/state/clear-requests{noformat} > h1. Steps to reproduce: > 1. Build NiFi using the newest sources > 2. Use the openapi-generator CLI to generate a client based on the generated > swagger.json > {code:java} > java -jar openapi-generator-cli.jar generate -i swagger.json -g kotlin > {code} > 3. CLI fails with error message > {code:java} > Exception in thread "main" org.openapitools.codegen.SpecValidationException: > There were issues with the specification. The option can be disabled via > validateSpec (Maven/Gradle) or --skip-validate-spec (CLI). > | Error count: 13, Warning count: 0 > Errors: > -attribute paths.'/processors/{id}/descriptors'(get).operationId is > repeated > -attribute paths.'/input-ports/{id}/run-status'(put).operationId is > repeated > -attribute > paths.'/process-groups/{id}/controller-services'(post).operationId is repeated > -attribute paths.'/processors/{id}/state'(get).operationId is repeated > -attribute paths.'/reporting-tasks/{id}/state'(get).operationId is > repeated > -attribute paths.'/versions/update-requests/{id}'(delete).operationId > is repeated > -attribute paths.'/output-ports/{id}/run-status'(put).operationId is > repeated > -attribute paths.'/remote-process-groups/{id}/state'(get).operationId > is repeated > -attribute > paths.'/processors/{id}/state/clear-requests'(post).operationId is repeated > -attribute paths.'/reporting-tasks/{id}/run-status'(put).operationId > is repeated > -attribute paths.'/processors/{id}/run-status'(put).operationId is > repeated > -attribute > paths.'/reporting-tasks/{id}/state/clear-requests'(post).operationId is > repeated > -attribute paths.'/reporting-tasks/{id}/descriptors'(get).operationId > is repeated at > org.openapitools.codegen.config.CodegenConfigurator.toContext(CodegenConfigurator.java:480) > at > org.openapitools.codegen.config.CodegenConfigurator.toClientOptInput(CodegenConfigurator.java:507) > at org.openapitools.codegen.cmd.Generate.execute(Generate.java:423) > at > org.openapitools.codegen.cmd.OpenApiGeneratorCommand.run(OpenApiGeneratorCommand.java:32) > at > org.openapitools.codegen.OpenAPIGenerator.main(OpenAPIGenerator.java:61) > {code} > > h1. Additional information: > The plugin _com.github.kongchen:swagger-maven-plugin:3.1.5_ is used to > generate the swagger.json file. It allows to define the format of the > operationId by passing in a new _operationIdFormat_. The default is > "methodName" - which is causing the problem described. However the plugin > itself recommends using "className_methodName_httpMethod" as operationId - > which would resolve the error caused by the duplicate usage. -- This message was sent by Atlassian Jira (v8.3.4#803005)