Skip to content

[ELIXIR] Bad generate client method with parameter type fileย #4957

Open
@mastacode

Description

@mastacode
Description

I generated client API for ELIXIR use swagger-codegen-cli-2.2.2.jar after that I saw code method and I think is some bug when we have in swagger.json parameter (in) type file. Inside the code that parameter dosen't have any transformation, it's treated like normal string. I set header content-type:multipart/form-data in request but this nothing change.

Swagger-codegen version

swagger-codegen-cli-2.2.2.jar

Swagger declaration file content or url
.....
"/{relObjId}": {
"post": {
"operationId": "add",
"summary": "add Image into system",
"tags": [
"image"
],
"consumes": [
"multipart/form-data"
],
"produces": [
"application/json"
],
"parameters": [
{
"name": "relObjId",
"in": "path",
"description": "object ID",
"required": true,
"type": "string"
},
{
"name": "file",
"in": "formData",
"description": "image file",
"required": true,
"type": "file"
},
{
"name": "format",
"in": "formData",
"description": "target format \"jpg\" (default) or \"png\"",
"type": "string"
},
{
"name": "description",
"in": "formData",
"description": "image description",
"type": "string",
"maxLength": 200
},
{
"name": "author",
"in": "formData",
"description": "image author",
"type": "string"
},
{
"name": "number",
"in": "formData",
"description": "image number",
"type": "integer"
},
{
"name": "additionalData",
"in": "formData",
"description": "addititional data as json",
"type": "string"
}
]
.....
Command line used for generation

java -jar swagger-codegen-cli-2.2.2.jar generate -i swagger.json -l elixir -o client_elixir

below generated method with second parameter type file

def add(rel_obj_id, file, format, description, author, number, additional_data) do
    method = [method: :post]
    url = [url: "/#{rel_obj_id}"]
    query_params = []
    header_params = []
    body_params = []
    form_params = [body: Enum.map_join([{:"file", file}, {:"format", format}, {:"description", description}, {:"author", author}, {:"number", number}, {:"additionalData", additional_data}], "&", &("#{elem(&1, 0)}=#{elem(&1, 1)}"))]
    params = query_params ++ header_params ++ body_params ++ form_params
    opts = []
    options = method ++ url ++ params ++ opts

    request(options)
  end

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions