Как я могу использовать SwaggerValidator (com.atlassian.oai.validator) для проверки простого JSON без запроса или ответа - PullRequest
0 голосов
/ 29 октября 2018

У меня есть следующие потребности: Ввод - это объект JSON, полученный из очереди сообщений (или Kafka) Мне нужно, чтобы проверить вышеупомянутое сообщение JSON против спецификации чванства. Я не могу найти какое-либо надежное решение для преобразования swagger в JSON-схему, и поэтому я решил посмотреть, можно ли использовать com.atlassian.oai.validator для достижения этой цели.

Однако проблема заключается в том, что, просто используя основной валидатор, мы вынуждены формулировать запрос / ответ в строгом смысле, но все, что мне нужно, это схема JSON, такая как валидация (прежде всего структура JSON, содержимое данных и т. Д.). Я не знаю, как добиться этого с помощью этого валидатора?

Пример кода приведен ниже:

    private static final String SWAGGER_JSON_URL = "http://petstore.swagger.io/v2/swagger.json";    
    String inputJSON = "{"
                    + "  \"id\": 1,"
                    + "  \"category\": {"
                    + "    \"id\": 0,"
                    + "    \"name\": \"string\""
                    + "  },"
                    + "  \"name\": \"doggie\","
                    + "  \"photoUrls\": ["
                    + "    \"string\""
                    + "  ],"
                    + "  \"tags\": ["
                    + "    {"
                    + "      \"id\": 2,"
                    + "      \"name\": \"string\""
                    + "    }"
                    + "  ],"
                    + "  \"status\": \"available\""
                    + "}";
OpenApiInteractionValidator validator = OpenApiInteractionValidator.createFor(SWAGGER_JSON_URL).build();

Теперь я понятия не имею, как вызвать validator.validate и предоставить inputJSON в качестве параметра?

Я попробовал следующее, создав простой ответ, чтобы посмотреть, поможет ли это, но снова я не нашел способа вызвать метод validateResponse, поскольку он настаивал на многих параметрах, которых у меня нет:

final Response response = SimpleResponse.Builder.ok()
                .withContentType("application/json")
                .withBody(inputJSON)
                .build();
        ValidationReport report = validator.validateResponse(response);

Может кто-нибудь помочь мне здесь? Или я использую не ту вещь, чтобы добиться своей нужды? Если есть другое решение для достижения этой цели, пожалуйста, дайте мне знать.

Мир, Ananth

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