openapi-generator icon indicating copy to clipboard operation
openapi-generator copied to clipboard

[BUG] file uploads not supported by the Rust generator

Open qrilka opened this issue 2 years ago • 0 comments

Bug Report Checklist

  • [ ] Have you provided a full/minimal spec to reproduce the issue?
  • [x] Have you validated the input using an OpenAPI validator (example)?
  • [ ] Have you tested with the latest master to confirm the issue still exists?
  • [x] Have you searched for related issues/PRs?
  • [ ] What's the actual output vs expected output?
  • [ ] [Optional] Sponsorship to speed up the bug fix or feature request (example)
Description

It's not clear how the project documents file upload support. But according to https://openapi-generator.tech/docs/generators/rust/ both File data type and FormMultipart are implemented. In practice the generated code contains just a TODO. Side comment: file parameter becomes encoded as file: std::path::PathBuf which makes it impossible to use the generated code from WASM.

openapi-generator version
$ openapi-generator-cli --version
openapi-generator-cli 7.0.1

Also checked the latest templates in master

OpenAPI declaration file content or url
            "UploadRequest": {
                "properties": {
                    "file": {
                        "format": "binary",
                        "type": "string"
                    }
                },
                "required": [
                    "file"
                ],
                "type": "object"
            }
Generation Details

In the generated Rust code I see

    // TODO: support file upload for 'file' parameter

Reflecting the template https://github.com/OpenAPITools/openapi-generator/blob/783e68c7acbbdcbb2282d167d1644b069f12d486/modules/openapi-generator/src/main/resources/rust/reqwest/api.mustache#L269

Steps to reproduce

Create an endpoint with response body with "content": "multipart/form-data" and containing file parameter with format "binary", and type "string. Run Rust generator for this API spec.

Related issues/PRs

https://github.com/OpenAPITools/openapi-generator/issues/16167

Suggest a fix

Create an explicit ticket about file support implementation and make it visible on the website that it's still missing.

qrilka avatar Feb 08 '24 12:02 qrilka