krakenjs / swaggerize-express

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

ValidationError: "body" is required #104

Closed gutenye closed 8 years ago

gutenye commented 8 years ago

I send request with body, but still get this error

$ http POST :3000/login email=a password=b

My api spec

  "paths": {
    "/login": {
      "post": {
        "parameters": [
          {"name": "body", "in": "body", "required": true, "schema": {"$ref": "#/definitions/Login"}}
        ]
      }
    }
  },
ValidationError: "body" is required
    at Object.exports.process (/home/guten/a/swagger/swaggerize-express/node_modules/joi/lib/errors.js:140:17)
    at internals.Any.validate (/home/guten/a/swagger/swaggerize-express/node_modules/joi/lib/any.js:667:25)
    at validateParameter (/home/guten/a/swagger/swaggerize-express/node_modules/swaggerize-routes/lib/validator.js:111:28)
    at validateInput (/home/guten/a/swagger/swaggerize-express/node_modules/swaggerize-express/lib/expressroutes.js:82:9)
    at Layer.handle [as handle_request] (/home/guten/a/swagger/swaggerize-express/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/guten/a/swagger/swaggerize-express/node_modules/express/lib/router/route.js:131:13)
    at Route.dispatch (/home/guten/a/swagger/swaggerize-express/node_modules/express/lib/router/route.js:112:3)
    at Layer.handle [as handle_request] (/home/guten/a/swagger/swaggerize-express/node_modules/express/lib/router/layer.js:95:5)
    at /home/guten/a/swagger/swaggerize-express/node_modules/express/lib/router/index.js:277:22
    at Function.process_params (/home/guten/a/swagger/swaggerize-express/node_modules/express/lib/router/index.js:330:12)
gutenye commented 8 years ago

Fixed, needs json parser in express.

broox commented 7 years ago

i.e.

var express = require('express'),
    bodyParser = require('body-parser');

var app = express();
app.use(bodyParser.json());