Данные ответа полностью различаются для конечной точки, указанной в swagger.yaml. Ожидаемый результат: проверка схемы не удалась, но я все еще получаю ответ на запрос
Модуль NPM использует swagger-express-mw версия 0.6.0
используемая версия чванства - 2,0
swagger.yaml - пути
paths:
/hello:
x-swagger-router-controller: hello_world
get:
description: Returns 'Hello' to the caller
operationId: hello
parameters:
- name: name
in: query
description: The name of the person to whom to say hello
required: false
type: string
responses:
'200':
description: Success
schema:
type: object
required:
- versions
- status
properties:
versions:
type: string
status:
type: string
additionalProperties: false
default:
description: Error
schema:
$ref: '#/definitions/ErrorResponse'
definitions:
ErrorResponse:
required:
- message
properties:
message:
type: string
Код контроллера:
module.exports = {
hello: hello
};
function hello(req, res) {
var hello = {"version":"finder","difffff":"dif"};
res.json(hello);
}
У меня нет ключей "version" и "difffff" в swagger.yaml.
При очистке схемы ожидаются «версии» и «статус», оба свойства четко помечены как обязательные, а дополнительные свойства также установлены в false. Любое дополнительное свойство в ответе, кроме свойств схемы, будет предполагать сбой, даже если это не происходит здесь. Ожидаемое поведение - ошибка проверки, а не то, что я получил такой ответ.
завиток http://127.0.0.1:10010/hello?name=Scott
{ "Версия": "Finder", "difffff": "DIF"}
Я поделюсь default.yaml для более подробной информации. Проверка ответа включена.
Мой конфиг / default.yaml
swagger:
fittingsDirs: [ api/fittings ]
defaultPipe: null
swaggerControllerPipe: swagger_controllers # defines the standard processing pipe for controllers
# values defined in the bagpipes key are the bagpipes pipes and fittings definitions
# (see https://github.com/apigee-127/bagpipes)
bagpipes:
_router:
name: swagger_router
mockMode: false
mockControllersDirs: [ api/mocks ]
controllersDirs: [ api/controllers ]
_swagger_validate:
name: swagger_validator
validateResponse: true
# pipe for all swagger-node controllers
swagger_controllers:
# - onError: json_error_handler
- cors
- swagger_params_parser
- swagger_security
- _swagger_validate
- express_compatibility
- _router
# pipe to serve swagger (endpoint is in swagger.yaml)
swagger_raw:
name: swagger_raw
Я не мог понять, где я ошибся или пропустил какие-то конкретные детали. Заранее спасибо за любые предложения.