wcandillon / swagger-js-codegen

A Swagger Codegen for typescript, nodejs & angularjs
Apache License 2.0
693 stars 286 forks source link

Wrong format of POST request body data #201

Open sytolk opened 6 years ago

sytolk commented 6 years ago

I have POST Endpoint from WS that accept application/x-www-form-urlencoded

"consumes": [
                    "application/x-www-form-urlencoded"
                ]

and generated React client

CodeGen.getReactCode({
    moduleName: className,
    className,
    swagger,
    isES6: true
});

When I call this request header Content-Type: application/x-www-form-urlencoded is missing and body data is JSON formatted {param1=.., param2=..} instead of: param1=..,param2=..

this is the fetch request in my generated code. Body is always JSON string

fetch(urlWithParams, {
            method,
            headers,
            body: JSON.stringify(body)
        })

My ugly quickfix is:

if (body && !Object.keys(body).length) {
            body = form;
        }

        fetch(urlWithParams, {
            method,
            headers,
            body: Object.keys(body).map(key=>encodeURIComponent(key)+'='+encodeURIComponent(body[key])).join('&')
        })

source: https://stackoverflow.com/a/37562814/2285631