json #validation #openapi #vert.x
#json #проверка #openapi #vert.x
Вопрос:
мы настраиваем нашу конечную точку HTTP с помощью vert.x, используя RouterBuilder с существующей спецификацией OpenAPI. Что касается десериализации данных, используется avro-json (openapi генерируется из схемы avro), проверка данных полезной нагрузки JSON не должна применяться vert.x, поскольку правильная интерпретация и проверка должны выполняться только во время десериализации avro.
Я нашел https://vertx.io/docs/vertx-web-validation/java/#_without_vert_x_web_validation это, но не сработало, и я не уверен, подходит ли это также для функциональности RouterBuilder.
https://vertx.io/docs/vertx-web-openapi/java/#_routerbuilder кажется, это более подходит:
Vert.x OpenAPI монтирует для вас правильный обработчик ValidationHandler, чтобы вы могли получить доступ к параметрам запроса и телу запроса. Обратитесь к документации по веб-проверке Vert.x, чтобы узнать, как получить параметры запроса и тело запроса, а также как управлять сбоями проверки
Но также не работает для меня — вероятно, применяется неправильно
Есть идеи, как я могу отключить проверку json? Это вызов POST
RouterBuilder.create(vertx, pathToMyOpenApi)
.onSuccess(routerBuilder -> {
routerBuilder
.operation("operation")
.handler(this::operationHandler);
SchemaRouter schemaRouter = SchemaRouter.create(this.vertx, new SchemaRouterOptions());
var dummy = MyDummyValidator.create(schemaRouter);
var router = routerBuilder.createRouter();
router.get().handler(
ValidationHandler.builder(dummy).build()
);
var subRouter = apiRouter.mountSubRouter("/path", router);
});
Заранее спасибо