Swagger Codegen is not working while generating ja

2019-09-03 19:10发布

I am trying to generate a client using swagger codegen for a REST Api having OAuth 2.0 security. The call is following:

    E:\>java -jar swagger-codegen-distribution-2.1.2-M1.jar  -a access_token:df8eb092-e34f-48f9-b4ce-32cdd1ae2613 -i http://localhost:8080/someapi/api-docs -l java -o E:\projects\prototypes\ApiClient

But this call is not working and generating the following output as:

SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
reading from http://localhost:8080/someapi/api-docs
reading from http://localhost:8080/someapi/api-docs
usage: Codegen
-a,--auth                 addes authorization headers when fetching the
                       swagger definitions remotely. Pass in a
                       URL-encoded string of name:header with a comma
                       separating multiple values
-d,--debug-info           prints additional info for debugging
-h,--help                 shows this message
-i,--input-spec <arg>     location of the swagger spec, as URL or file
-l,--lang <arg>           client language to generate.
                       Available languages include:
                       [android, async-scala, java, jaxrs, nodejs,
                       objc, scalatra, scala, dynamic-html, html,
                       swagger, tizen, php, python]
-o,--output <arg>         where to write the generated files
-t,--template-dir <arg>   folder containing the template files

I have implemented recently the OAuth2.0 for this API so I assume that there is some problem with the authentication header I am setting with this APi as earlier the codegen was working well.

The following combinations I have tried for the -a option in the above command:

 -a access_token:<token>
 -a "access_token":<token>
 -a name:AUTHORIZATION,<token>

But nothing is working. I am really in trouble with a demo today. Really appreciate any quick help

Thanks

1条回答
家丑人穷心不美
2楼-- · 2019-09-03 19:30

I have been trying the same thing myself and I will post what I think your issue is. Please try the command in the format given below.

java -jar <Path of codegen jar>/swagger-codegen-cli.jar generate -i <path of swagger JSON>/swagger.json -l java -o <Output path>

In your command I do not see the JSON file name in "http://localhost:8080/someapi/api-docs"

If this does not work here is what I did to make the codegen work sucessfully.

Installation To build from source, you need the following installed and available in your $PATH:

  • Java 7 or 8
  • Apache maven 3.3.3 or greater

The following commands can be used to build the codegen from the source

You can also download the JAR (latest release) directly from maven.org

Generating code

You can generate the code for a particular JSON that you generated from the Swagger Editor using the following command.

  • java -jar /swagger-codegen-cli.jar generate -i /swagger.json -l java -o

Additional details in relation to this can be found in the link https://github.com/swagger-api/swagger-codegen/blob/master/README.md#compatibility

The generated code has a maven build, so the library dependencies of the code is specified in the pom.xml.

查看更多
登录 后发表回答