Независимая библиотека NPM, которая проверяет запрос на основе файла чванства - PullRequest
1 голос
/ 12 марта 2019

Мы создаем API с использованием Swagger, шлюза AWS API и функций Lambda с NodeJS.Шлюз API выполнит проверку запроса, однако согласно схеме лямбда-функции должны повторно проверять объект запроса как Событие запроса прокси-шлюза API .Это имеет смысл, так как в теории мы можем повторно использовать лямбда-функции, вызывая их через другой источник событий (например, SNS).

Поэтому нам нужен инструмент NodeJS, который может проверять запрос (не только тело, но и параметры, и т. Д.) на основе спецификации Swagger - именно то, что делают инструменты Swagger и несколько других инструментов (например, swagger-request-validator ), но не в качестве промежуточного программного обеспечения.

Я провел какой-то поиск, но не смог его найти, также изучил исходный код swagger-tools, считая, что его компонент проверки написан так, что его нельзя легко использовать отдельно.

Любое предложениеДобро пожаловать.Заранее спасибо.

1 Ответ

1 голос
/ 12 марта 2019

Вы можете использовать swagger-model-validator .

var Validator = require('swagger-model-validator');
var swaggerFile = require("./swagger.json");

const validator = new Validator(swaggerFile);

console.log(validator.validate({
    name: 'meg'
}, swaggerFile.definitions.Pet, swaggerFile.definitions, true).GetErrorMessages())

Это выводит:

['photoUrls - обязательное поле']

validator.validate возвращает объект, поэтому вы также можете проверить, содержит ли возвращаемый объект что-либо под атрибутом errors.Это должно быть так же просто, как

if (validator.validate({
    name: 'meg'
}, swaggerFile.definitions.Pet, swaggerFile.definitions, true).errors) {
    // do something with error
}

Я использовал образец Сваггера JSON для этого ответа.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...