Проверка данных ответа не совпадает с swagger.yaml, и все равно ответ приходит при использовании swagger-express-mw? - PullRequest
0 голосов
/ 12 марта 2019

Данные ответа полностью различаются для конечной точки, указанной в 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

Я не мог понять, где я ошибся или пропустил какие-то конкретные детали. Заранее спасибо за любые предложения.

...