krakenjs / swaggerize-express

Design-driven apis with swagger 2.0 and express.
Other
355 stars 81 forks source link

required query parameters always fail validation #64

Closed brianbaker closed 9 years ago

brianbaker commented 9 years ago

I believe there's a bug where query string parameters are not being correctly read of the request object. As a result any parameters marked as required fail validation. Offending code is in expressroutes.js in the switch statement. Currently query and path are being treated the same:

switch (parameter.in) {
    case 'path':
    case 'query':
        isPath = true;
        value = req.params[parameter.name];
        break;
    case 'header':
        value = req.get(parameter.name);
        break;
    case 'body':
    case 'formData':
        value = req.body;
}

This should probably be the following instead:

switch (parameter.in) {
    case 'path':
        isPath = true;
        value = req.params[parameter.name];
        break;
    case 'query':
        value = req.query[parameter.name];
        break;
    case 'header':
        value = req.get(parameter.name);
        break;
    case 'body':
    case 'formData':
        value = req.body;
}