[ 
https://issues.apache.org/jira/browse/NIFI-8051?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17240777#comment-17240777
 ] 

Otto Fowler commented on NIFI-8051:
-----------------------------------

>From looking at this a little bit, fixing one will make the code get junk.  
>I'm sure that code gen is the main thing here.  It is unfortunate.  Maybe 
>there is a way to get both things correct IE> code gen the way it works now 
>but with operationID's unique and not used as the method names?

> 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
>            Priority: Major
>
> 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)

Reply via email to