Я работаю над RESTful API, используя swagger-api и swagger-editor для маршрутов. Я не могу понять, почему JSON я посылаю через тело, никогда не дойду до своего контроллера.Swagger POST Json Body Parameter Schema YAML
вот мой YAML
schemes:
- http
- https
produces: [application/json, multipart/form-data, application/x-www-form-urlencoded]
paths:
/projects:
x-swagger-router-controller: project
post:
description: create a new project
operationId: postProjects
consumes:
- application/json
parameters:
- name: param1
in: body
description: description
required: false
schema:
$ref: "#/definitions/Project"
responses:
"200":
description: Success
schema:
$ref: "#/definitions/Project"
default:
description: Error
schema:
$ref: "#/definitions/ErrorResponse"
definitions:
Project:
properties:
name:
type: string
required:
- name
Exemple запроса пост я посылаю.
curl -v -X POST -H "Content-Type: application/json" -d '{"name":"test"}' http://127.0.0.1:10010/projects
и ответ
{"message":"Request validation failed: Parameter (param1) failed schema validation","code":"SCHEMA_VALIDATION_FAILED","failedValidation":true,"results":{"errors":[{"code":"OBJECT_MISSING_REQUIRED_PROPERTY","message":"Missing required property: name","path":[]}],"warnings":[]},"path":["paths","/projects","post","parameters","0"],"paramName":"param1"}
Если я установить параметр «имя» не требуется, я только что получил пустой ответ, как этот
{ param1:
{ path: [ 'paths', '/projects', 'post', 'parameters', '0' ],
schema:
{ name: 'param1',
in: 'body',
description: 'description',
required: false,
schema: [Object] },
originalValue: {},
value: {} } }
Я понятия не имею, почему так другой формат, такой как header, path или formdata, отлично работает. Я всегда получаю пустой объект. req.swagger.params
как никакой ценности. Я пробовал несколько схем, но даже самый простой не укусил. Я могу сказать из заголовка, что 'content-type': 'application/json'. Итак, тип контента установлен, схема проверяет простой строковый аргумент с именем «имя». Все должно быть хорошо .. но все равно нет.
Это может быть совершенно несвязанным, но для меня мне пришлось понизить пакет узла 'swagger-express-mw' обратно до' 0.1.0', чтобы временно решить эту проблему. – badsyntax
Я понизил пакет, но по другим причинам и все тот же .. Я открыл вопрос о github. – camille
вы можете разместить ссылку на вопрос github? – badsyntax