Skip to content

[Javascript] collectionFormat which is set to multi don't work when content type is multipart/form-data #5149

Open
@mt-sito

Description

@mt-sito
Description

I want to have multi same parameter name when "multipart/form-data" is set to parameter type as "array" and collectionFormat is set to "multi".

Swagger-codegen version

latest

Swagger declaration file content or url
  consumes:
    - multipart/form-data
  parameters:
    - name: tags[]
      in: formData
      type: array
      collectionFormat: multi
      items:
        type: string
Command line used for generation

I use docker.

docker run --rm --name swagger_codegen_main_1 -w /gen -e GEN_DIR=/gen -v ~/docker/swagger-codegen:/gen -v /data/swagger_codegen:/local -v ~/.m2/repository:/root/.m2/repository --entrypoint /gen/docker-entrypoint.sh maven:3-jdk-7 generate -i /local/api.yaml -l javascript -o /local/out/javascript

Suggest a Fix

generated callApi in ApiClientjs

  exports.prototype.callApi = function callApi(path, httpMethod, pathParams,
      queryParams, headerParams, formParams, bodyParam, authNames, contentTypes, accepts,
      returnType, callback) {

    [snip]

    } else if (contentType == 'multipart/form-data') {
      var _formParams = this.normalizeParams(formParams);
      for (var key in _formParams) {
        if (_formParams.hasOwnProperty(key)) {
          if (this.isFileParam(_formParams[key])) {
            // file field
            request.attach(key, _formParams[key]);
          } else {
            request.field(key, _formParams[key]);
          }
        }
      }

    [snip]
  }

Should "request.field(key, _formParams[key])" be called multiple time when collectionFormat is multi and value type is array?

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions