Удаленка для jenkins+selenide+selenoid+allure+docker спецов на 2-3 часа в день. 100% remote! Присоединиться к проекту

Как произвести валидацию json используя Retrofit и JSON Schema Validator

api
retrofit
restapi
java
Теги: #<Tag:0x00007fedbf3a2000> #<Tag:0x00007fedbf3a1df8> #<Tag:0x00007fedbf3a1bc8> #<Tag:0x00007fedbf3a1a60>

(Dmtry) #1

Привет. Есть тесты API на Java, используется Retrofit
Ответ мапится на модели.
Но стоит задача проверять обязательность каких либо полей, тип данных определенных полей, диапазон определенных полей
С этой задачей должен справится Json схема валидатор, но как его прикрутить не понятно. Так в response ретрофита получается уже объект. Как взять просто строку (json) и при этом оставить возможность использования POJO?

Сейчас процесс происходит так

Response response = user.getUsers().execute();

тут user это интерфейс

@POST(“api/v1/getUsers”)
Call getUsers();

все теперь response доступны поля модели UserResponse и это супер, мы можем сравнивать модели, с такой же моделью полученной к примеру из бд. Но иногда ответы очень большие, и что бы к примеру изобрести аналогичный SQL запрос надо потратить очень много времени. Хотелось бы в таких случаях использовать json валидатор. Буду благодарен если подскажете как его применить используя мой сетап.


(Dmtry) #2

Сам себе отвечу, кажется найдено решение.

в интерфейсе тип возвращаемого значение меняем на ResponseBody
У этого объекта есть метод .string() таким образом получаем строку.
Далее по нужде преобразуем в объект

Gson gson = new GsonBuilder().create();
UserResponse sr = gson.fromJson(json, UserResponse.class);