Я использую swagger-express-validator
для проверки входных данных на небольшом сервере API (в формате Swagger 2)
Мое path
определение выглядит следующим образом
/api/v1/users:
post:
produces:
- "application/json"
parameters:
- in: body
name: ids
description: Array of user ids to be processed
required: true
schema:
$ref: "#/definitions/ArrayOfIds"
responses:
200:
description: success
ArrayOfIds
определяется следующим образом
Id:
type: string
ArrayOfIds:
type: array
items:
$ref: "#/definitions/Id"
Отправка почтового запроса на сервер следующим образом:
POST /api/v1/users HTTP/1.1
Content-Type: application/json
Accept: application/json
Host: localhost:3000
Connection: close
User-Agent: Paw/3.1.7 (Macintosh; OS X/10.13.6) GCDHTTPRequest
Content-Length: 35
{
"ids": ["abcd12345"]
}
Приводит к ошибке
Request Invalid: POST /api/v1/users
[ { keyword: 'type',
dataPath: '',
schemaPath: '#/type',
params: { type: 'array' },
message: 'should be array' } ]
Однако я могу получить доступ к req.body.ids
в своем коде контроллера маршрутизации Express, и он содержит правильное значение ['1234abc']
.
Есть ли у вас какие-либо идеи относительно того, почему валидатор жалуется на запрос? Это выглядит хорошо для меня.