wcandillon/swagger-js-codegen

Wrong format of POST request body data

sytolk opened this issue · 0 comments

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