Open matthiasbeyer opened 6 years ago
I'm experiencing the same
Compiling error-chain v0.11.0
Compiling clap v2.31.2
Compiling swagger_client v0.0.1 (file:///Users/nick/hackery/rust/wg-api-server)
error: unnecessary parentheses around function argument
--> src/server.rs:106:63
|
106 | let mut response = Response::with((status::Status::from_u16(200)));
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses
|
= note: `-D unused-parens` implied by `-D warnings`
error: unnecessary parentheses around function argument
--> src/server.rs:158:63
|
158 | let mut response = Response::with((status::Status::from_u16(201)));
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses
error: aborting due to 2 previous errors
error: Could not compile `swagger_client`.
warning: build failed, waiting for other jobs to finish...
error: build failed```
@matthiasbeyer try compiling with something like
RUSTFLAGS="-A unused-parens" cargo build
this worked for me to build rust-server
(not client)
@nstott This does not help, because:
error: expected identifier, found `,`
--> src/apis/service_api.rs:44:46
|
44 | fn service_create(&self, body: ::models::, x_registry_auth: &str) -> Box<Future<Item = ::models::ServiceCreateResponse, Error = Error>> {
| ^ expected identifier
error: expected identifier, found `,`
--> src/apis/service_api.rs:199:56
|
199 | fn service_update(&self, id: &str, body: ::models::, version: i32, registry_auth_from: &str, rollback: &str, x_registry_auth: &str) -> Box<Future<Item = ::models::ServiceUpdateResponse, Error = Error>> {
| ^ expected identifier
(only some errors are pasted here, there are tons (28 in fact) more!)
boo.. different error,
try using -l rust-server
instead of -l rust
, there are two different rust implementations
Tried the following:
java -jar swagger-codegen-cli.jar generate -i ./docker-swagger.yaml -l rust-server -o ./output
[main] INFO io.swagger.parser.Swagger20Parser - reading from ./docker-swagger.yaml
[main] WARN io.swagger.util.PropertyDeserializer - no property from null, null, {ENUM=null, TITLE=null, DESCRIPTION=null, DEFAULT=null, PATTERN=null, DESCRIMINATOR=null, MIN_ITEMS=null, MAX_ITEMS=null, MIN_PROPERTIES=null, MAX_PROPERTIES=null, MIN_LENGTH=null, MAX_LENGTH=null, MINIMUM=null, MAXIMUM=null, EXCLUSIVE_MINIMUM=null, EXCLUSIVE_MAXIMUM=null, UNIQUE_ITEMS=null, EXAMPLE=null, TYPE=null, FORMAT=null, READ_ONLY=null, VENDOR_EXTENSIONS={}, MULTIPLE_OF=null}
[main] WARN io.swagger.util.PropertyDeserializer - no property from null, null, {ENUM=null, TITLE=null, DESCRIPTION=null, DEFAULT=null, PATTERN=null, DESCRIMINATOR=null, MIN_ITEMS=null, MAX_ITEMS=null, MIN_PROPERTIES=null, MAX_PROPERTIES=null, MIN_LENGTH=null, MAX_LENGTH=null, MINIMUM=null, MAXIMUM=null, EXCLUSIVE_MINIMUM=null, EXCLUSIVE_MAXIMUM=null, UNIQUE_ITEMS=null, EXAMPLE=null, TYPE=null, FORMAT=null, READ_ONLY=null, VENDOR_EXTENSIONS={}, MULTIPLE_OF=null}
[main] WARN io.swagger.codegen.languages.RustServerCodegen - The integer format 'uint16' is not recognized and will be ignored.
[main] WARN io.swagger.codegen.languages.RustServerCodegen - The integer format 'uint16' is not recognized and will be ignored.
[main] WARN io.swagger.codegen.languages.RustServerCodegen - The integer format 'uint8' is not recognized and will be ignored.
[main] WARN io.swagger.codegen.languages.RustServerCodegen - The integer format 'uint8' is not recognized and will be ignored.
[main] INFO io.swagger.codegen.AbstractGenerator - writing file /home/sharks/source/shiplift-swagger/./output/api/swagger.yaml
[main] INFO io.swagger.codegen.AbstractGenerator - writing file /home/sharks/source/shiplift-swagger/./output/Cargo.toml
[main] INFO io.swagger.codegen.DefaultGenerator - writing file /home/sharks/source/shiplift-swagger/./output/.cargo/config
[main] INFO io.swagger.codegen.DefaultGenerator - writing file /home/sharks/source/shiplift-swagger/./output/.gitignore
[main] INFO io.swagger.codegen.AbstractGenerator - writing file /home/sharks/source/shiplift-swagger/./output/src/lib.rs
[main] INFO io.swagger.codegen.AbstractGenerator - writing file /home/sharks/source/shiplift-swagger/./output/src/models.rs
[main] INFO io.swagger.codegen.AbstractGenerator - writing file /home/sharks/source/shiplift-swagger/./output/src/server.rs
[main] INFO io.swagger.codegen.AbstractGenerator - writing file /home/sharks/source/shiplift-swagger/./output/src/client.rs
[main] INFO io.swagger.codegen.AbstractGenerator - writing file /home/sharks/source/shiplift-swagger/./output/src/mimetypes.rs
[main] INFO io.swagger.codegen.AbstractGenerator - writing file /home/sharks/source/shiplift-swagger/./output/examples/server.rs
[main] INFO io.swagger.codegen.AbstractGenerator - writing file /home/sharks/source/shiplift-swagger/./output/examples/client.rs
[main] INFO io.swagger.codegen.AbstractGenerator - writing file /home/sharks/source/shiplift-swagger/./output/examples/server_lib/mod.rs
[main] INFO io.swagger.codegen.AbstractGenerator - writing file /home/sharks/source/shiplift-swagger/./output/examples/server_lib/server.rs
[main] INFO io.swagger.codegen.DefaultGenerator - writing file /home/sharks/source/shiplift-swagger/./output/examples/ca.pem
[main] INFO io.swagger.codegen.DefaultGenerator - writing file /home/sharks/source/shiplift-swagger/./output/examples/server-chain.pem
[main] INFO io.swagger.codegen.DefaultGenerator - writing file /home/sharks/source/shiplift-swagger/./output/examples/server-key.pem
[main] INFO io.swagger.codegen.AbstractGenerator - writing file /home/sharks/source/shiplift-swagger/./output/README.md
[main] INFO io.swagger.codegen.AbstractGenerator - writing file /home/sharks/source/shiplift-swagger/./output/.swagger-codegen/VERSION
cd output && cargo build
error: expected type, found `,`
--> src/lib.rs:1189:38
|
1189 | fn container_create(&self, body: , name: Option<String>, context: &Context) -> Box<Future<Item=ContainerCreateResponse, Error=ApiError> + Send>;
| ^
error: expected type, found `,`
--> src/lib.rs:1240:52
|
1240 | fn container_update(&self, id: String, update: , context: &Context) -> Box<Future<Item=ContainerUpdateResponse, Error=ApiError> + Send>;
| ^
error: expected type, found `,`
--> src/lib.rs:1393:36
|
1393 | fn service_create(&self, body: , x_registry_auth: Option<String>, context: &Context) -> Box<Future<Item=ServiceCreateResponse, Error=ApiError> + Send>;
| ^
....
and more
might be worth pasting your swagger.yaml,
fwiw, I've been using the rust-server
without any issues, but with an embarrassingly small set of api endpoints. It looks like there's something happening in your yaml that the swagger plugin isn't guarding against
Here's what I'm using: https://github.com/moby/moby/blob/master/api/swagger.yaml
Sorry - late to notice this.
Thanks for the diags. It looks like the problem is that rust-server
doesn't handle allOf
correctly.
@bjgill I tried it with the pre-release too,
java -jar swagger-codegen-cli-3.0.0-rc0.jar generate -i ./docker-swagger.yaml -l rust-server -o ./output
[Thread-1] WARN io.swagger.util.PropertyDeserializer - no property from null, null, {ENUM=null, TITLE=null, DESCRIPTION=null, DEFAULT=null, PATTERN=null, DESCRIMINATOR=null, MIN_ITEMS=null, MAX_ITEMS=null, MIN_PROPERTIES=null, MAX_PROPERTIES=null, MIN_LENGTH=null, MAX_LENGTH=null, MINIMUM=null, MAXIMUM=null, EXCLUSIVE_MINIMUM=null, EXCLUSIVE_MAXIMUM=null, UNIQUE_ITEMS=null, EXAMPLE=null, TYPE=null, FORMAT=null, READ_ONLY=null, VENDOR_EXTENSIONS={}, MULTIPLE_OF=null}
[Thread-1] WARN io.swagger.util.PropertyDeserializer - no property from null, null, {ENUM=null, TITLE=null, DESCRIPTION=null, DEFAULT=null, PATTERN=null, DESCRIMINATOR=null, MIN_ITEMS=null, MAX_ITEMS=null, MIN_PROPERTIES=null, MAX_PROPERTIES=null, MIN_LENGTH=null, MAX_LENGTH=null, MINIMUM=null, MAXIMUM=null, EXCLUSIVE_MINIMUM=null, EXCLUSIVE_MAXIMUM=null, UNIQUE_ITEMS=null, EXAMPLE=null, TYPE=null, FORMAT=null, READ_ONLY=null, VENDOR_EXTENSIONS={}, MULTIPLE_OF=null}
[Thread-1] INFO io.swagger.codegen.ignore.CodegenIgnoreProcessor - No .swagger-codegen-ignore file found.
[Thread-1] WARN io.swagger.codegen.utils.URLPathUtil - Not valid URL: /v1.37
java.net.MalformedURLException: no protocol: /v1.37
at java.net.URL.<init>(URL.java:593)
at java.net.URL.<init>(URL.java:490)
at java.net.URL.<init>(URL.java:439)
at io.swagger.codegen.utils.URLPathUtil.getServerURL(URLPathUtil.java:30)
at io.swagger.codegen.DefaultGenerator.configureGeneratorProperties(DefaultGenerator.java:209)
at io.swagger.codegen.DefaultGenerator.generate(DefaultGenerator.java:716)
at io.swagger.codegen.cmd.Generate.run(Generate.java:312)
at java.lang.Thread.run(Thread.java:748)
[Thread-1] WARN io.swagger.codegen.languages.RustServerCodegen - The integer format 'uint16' is not recognized and will be ignored.
[Thread-1] WARN io.swagger.codegen.languages.RustServerCodegen - The integer format 'uint16' is not recognized and will be ignored.
[Thread-1] WARN io.swagger.codegen.utils.URLPathUtil - Not valid URL: /v1.37
java.net.MalformedURLException: no protocol: /v1.37
at java.net.URL.<init>(URL.java:593)
at java.net.URL.<init>(URL.java:490)
at java.net.URL.<init>(URL.java:439)
at io.swagger.codegen.utils.URLPathUtil.getServerURL(URLPathUtil.java:30)
at io.swagger.codegen.DefaultGenerator.buildSupportFileBundle(DefaultGenerator.java:669)
at io.swagger.codegen.DefaultGenerator.generate(DefaultGenerator.java:728)
at io.swagger.codegen.cmd.Generate.run(Generate.java:312)
at java.lang.Thread.run(Thread.java:748)
[Thread-1] WARN io.swagger.codegen.utils.URLPathUtil - Not valid URL: /v1.37
java.net.MalformedURLException: no protocol: /v1.37
at java.net.URL.<init>(URL.java:593)
at java.net.URL.<init>(URL.java:490)
at java.net.URL.<init>(URL.java:439)
at io.swagger.codegen.utils.URLPathUtil.getServerURL(URLPathUtil.java:30)
at io.swagger.codegen.utils.URLPathUtil.getScheme(URLPathUtil.java:39)
at io.swagger.codegen.DefaultGenerator.buildSupportFileBundle(DefaultGenerator.java:678)
at io.swagger.codegen.DefaultGenerator.generate(DefaultGenerator.java:728)
at io.swagger.codegen.cmd.Generate.run(Generate.java:312)
at java.lang.Thread.run(Thread.java:748)
Exception in thread "Thread-1" java.lang.RuntimeException: Could not generate supporting file 'SupportingFile:
templateFile: swagger.mustache
folder: api
destinationFilename: swagger.yaml
'
at io.swagger.codegen.DefaultGenerator.generateSupportingFiles(DefaultGenerator.java:609)
at io.swagger.codegen.DefaultGenerator.generate(DefaultGenerator.java:729)
at io.swagger.codegen.cmd.Generate.run(Generate.java:312)
at java.lang.Thread.run(Thread.java:748)
Caused by: java.io.FileNotFoundException: /rust-server/swagger.mustache
at com.github.jknack.handlebars.io.URLTemplateLoader.sourceAt(URLTemplateLoader.java:70)
at com.github.jknack.handlebars.Handlebars.compile(Handlebars.java:357)
at com.github.jknack.handlebars.Handlebars.compile(Handlebars.java:343)
at io.swagger.codegen.DefaultGenerator.getHandlebars(DefaultGenerator.java:1013)
at io.swagger.codegen.DefaultGenerator.generateSupportingFiles(DefaultGenerator.java:577)
... 3 more
Yes - unfortunately, neither rust
nor rust-server
work in 3.0.0.
Description
I generated rust code from the docker API specification, but the resulting code does not compile.
The code, including the API spec downloaded from the docker website, is here: https://github.com/matthiasbeyer/shiplift-swagger
Swagger-codegen version
2.3.1
Swagger declaration file content or url
https://github.com/matthiasbeyer/shiplift-swagger/blob/master/docker-swagger.yaml
Command line used for generation
In the repository:
Steps to reproduce
(All given above)
Related issues/PRs
None (as far as I can see).