3

I'm introducing an optional "query parameter" (with default value) for one of my API endpoint ( i.e. /foo2) but hoping that existing API consumers don't have to make any changes in their application when they regenerate the java client stub from the new swagger file.

I was expecting that the generated java client will offer overloaded methods, to operate with and without a method parameter, so that my existing API consumers can work without any changes to their call. At the same time, they can switch to its more generic offering.

public void foo2Get() throws ApiException {
public void foo2Get(String type) throws ApiException {

But it generates ONLY the latter. I don't see the former.

At the same time, generated python client from same swagger throws a var arg and this way it more flexible and hence old and new offerings will work without any issues.

def foo2_get(self, **kwargs): 

(swagger sample used: attached)

** Description** Is there a way to overcome this limitation with java code generator.

swagger-generator version

swagger 2.0

Swagger declaration file content or url

      swagger: '2.0'
      info:
        title: identity
        version: Unknown
      consumes:
        - application/json
      produces:
        - application/json
      parameters:
        typeParam:
          name: type
          in: query
          required: false
          allowEmptyValue: true
          default: basic
          type: string
          enum: 
           - basic
           - advanced

      paths:
        /foo2:
          get:
            consumes:
              - application/json
            parameters:
               - "$ref": "#/parameters/typeParam"
            responses:
              '200':
                description: OK
mahesh kamath
  • 195
  • 3
  • 11

0 Answers0