Otto Fowler created NIFI-8051: --------------------------------- Summary: NIFI ApiOperations should define nicknames to generate unique swagger operationId Key: NIFI-8051 URL: https://issues.apache.org/jira/browse/NIFI-8051 Project: Apache NiFi Issue Type: Bug Reporter: Otto Fowler
The swagger definitions that nifi produces have duplicate operationId's for many operations. While the swagger implementation 'works' ( IE. it can generate clients with all the correct operations ) it is not per the spec, where unique operationIds are required. https://github.com/OAI/OpenAPI-Specification/blob/master/versions/2.0.md#fixed-fields-5 Thus, tools that are written to the spec throw errors when trying to generate against the nifi api json, such as : {code:json} { "type": "DUPLICATE_OPERATIONID", "message": "Multiple OASs share operations with the same operationId 'getPropertyDescriptor'", "mitigation": "Ignore operation and maintain preexisting operation. The operation from the OAS 'NiFi Rest Api' will be ignored" }, { "type": "DUPLICATE_OPERATIONID", "message": "Multiple OASs share operations with the same operationId 'updateRunStatus'", "mitigation": "Ignore operation and maintain preexisting operation. The operation from the OAS 'NiFi Rest Api' will be ignored" }, { "type": "DUPLICATE_OPERATIONID", "message": "Multiple OASs share operations with the same operationId 'getState'", "mitigation": "Ignore operation and maintain preexisting operation. The operation from the OAS 'NiFi Rest Api' will be ignored" }, { "type": "DUPLICATE_OPERATIONID", "message": "Multiple OASs share operations with the same operationId 'clearState'", "mitigation": "Ignore operation and maintain preexisting operation. The operation from the OAS 'NiFi Rest Api' will be ignored" }, { "type": "MISSING_RESPONSE_SCHEMA", "message": "Operation DELETE /versions/active-requests/{id} has no (valid) response schema. You can use the fillEmptyResponses option to create a placeholder schema", "mitigation": "Ignore operation." }, { "type": "DUPLICATE_OPERATIONID", "message": "Multiple OASs share operations with the same operationId 'deleteUpdateRequest'", "mitigation": "Ignore operation and maintain preexisting operation. The operation from the OAS 'NiFi Rest Api' will be ignored" } {code} the fix for this may be to define a "nickname", that would create a unique operationId, such as {code:java} @GET @Consumes(MediaType.WILDCARD) @Produces(MediaType.APPLICATION_JSON) @Path("/{id}/state") @ApiOperation( nickname="processor_get_state" value = "Gets the state for a processor", response = ComponentStateEntity.class, authorizations = { @Authorization(value = "Write - /processors/{uuid}") } ) {code} to reproduce: https://loopback.io/openapi-to-graphql.html against the nifi openapi json -- This message was sent by Atlassian Jira (v8.3.4#803005)