8

I am specifying my APIs using swagger I was using 2.0 now there is new version 3.0.0 according to the documentation I have specified 3.0.0 specification using offline swagger editor. Once it was ready I downloaded json file using which I am going to generate spring server code. I downloaded the swagger-codegen

Built it using mvn clean package then I executed following command :

java -jar <PARENT_DIR>/swagger-codegen/modules/swagger-codegen-cli/target/swagger-codegen-cli.jar generate -i <PARENT_DIR>/ServerCode/swagger.json -l spring -o <PARENT_DIR>/ServerCode

Above command gives following error to me :

[main] INFO io.swagger.parser.Swagger20Parser - reading from swagger.json
[main] INFO io.swagger.parser.Swagger20Parser - reading from swagger.json
[main] INFO io.swagger.codegen.ignore.CodegenIgnoreProcessor - No .swagger-codegen-ignore file found.
Exception in thread "main" java.lang.RuntimeException: missing swagger input or config!
        at io.swagger.codegen.DefaultGenerator.generate(DefaultGenerator.java:723)
        at io.swagger.codegen.cmd.Generate.run(Generate.java:285)
        at io.swagger.codegen.SwaggerCodegen.main(SwaggerCodegen.java:35)

Update :

My swagger.json file as follows ( This is my trial project hence I have pasted my api structure here ):

{
  "openapi": "3.0.0",
  "info": {
    "version": "1.0.0",
    "title": "User Example",
    "license": {
      "name": "MIT"
    }
  },
  "servers": [
    {
      "url": "http://www.example.com//v1"
    }
  ],
  "paths": {
    "/user": {
      "post": {
        "summary": "API to create a new User",
        "operationId": "createUser",
        "tags": [
          "user"
        ],
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "requestBody": {
          "description": "User data to be created",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/User"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Newly created User data",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/User"
                }
              }
            }
          },
          "404": {
            "description": "Unexpected Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AuthError"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InternalServerError"
                }
              }
            }
          },
          "default": {
            "description": "Unexpected Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UnexpectedError"
                }
              }
            }
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "User": {
        "required": [
          "id",
          "fname",
          "email"
        ],
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "fname": {
            "type": "string"
          },
          "lname": {
            "type": "string"
          },
          "email": {
            "type": "string",
            "format": "email"
          },
          "phone": {
            "type": "string"
          }
        }
      },
      "UnexpectedError": {
        "properties": {
          "message": {
            "type": "string",
            "example": "Something went wrong"
          }
        }
      },
      "AuthError": {
        "properties": {
          "message": {
            "type": "string",
            "example": "Authorization failed"
          }
        }
      },
      "InternalServerError": {
        "properties": {
          "message": {
            "type": "string",
            "example": "There is server side error while processing your request"
          }
        }
      }
    },
    "securitySchemes": {
      "bearerAuth": {
        "type": "http",
        "scheme": "bearer",
        "bearerFormat": "JWT"
      }
    }
  }
}

I have tried building the code-gen-cli on 3.0.0 branch also which is giving same error.

6
  • Did you use the 3.0.0-SNAPSHOT version? Can you post your swagger.json file? Commented Nov 15, 2017 at 8:27
  • @Helen please have look at the updated questions the 3.0.0-SNAPSHOT didn't worked for me giving same error. Thanks for response. Commented Nov 15, 2017 at 8:55
  • You may want to try to build from github.com/swagger-api/swagger-codegen/tree/3.0.0_enhancements, which is still work-in-progress. Commented Nov 15, 2017 at 16:44
  • @WilliamCheng thanks for response 3.0.3_enhancement also do not work saw github issue it seems work in progress Commented Nov 16, 2017 at 9:04
  • 2
    I tried exactly the same thing and first got exactly the same error building swagger-codegen-cli from the master branch. But then, building again from the 3.0.0 branch, the generation was successful. Commented May 23, 2018 at 14:55

2 Answers 2

7

I know this is really late to answer this but I solved it with one simple change.

in your json file

change

{
  "openapi": "3.0.0",
  "info": {

to this

{
  "swagger": "3.0.0",
  "info": {

and it will be resolved.

Sign up to request clarification or add additional context in comments.

1 Comment

Unfortunately, has no effect.
3

As suggesed by anothernode in the question comments building again from 3.0.0 branch generates successfully:

$ git checkout v3.0.0
$ mvn clean package

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.