Я установил API для проверки, и у меня нет проблем там.Моя проблема заключается в вызове этого API, и он не проходит проверку.Я не знаю, как сопоставить ответ напрямую с существующими классами Java, когда мой запрос не проходит проверку (я не хочу создавать свои собственные классы, когда я знаю, что классы находятся где-то в рамках, которые я использую).К какому классу относится валидированный Spring API JSR-303 при сбое валидации?
Каждый «практический» сайт для валидации говорит только о создании API, а не о его потреблении.
// Calling Code:
restTemplate.postForObject(serviceUrl, entity, ExpectedResponse.class)
// API Code:
@RequestMapping(path = "/api/endpoint", method = RequestMethod.POST)
@ResponseBody
public ResponseEntity<ExpectedResponse> apiMethod(@Validated({ ExtraValidation.class, DefaultValidation.class }) @RequestBody ExpectedData myExpectedData]) {
Я хочу вызвать этот API, чтобы использовать happy-path (объект ответа ExpectedResponse.class), но также сопоставлять сбои проверки с классом Java?
Если мне нужно использовать JSONкартограф, это нормально.Основная проблема заключается в том, чтобы знать, к какому классу соответствует ответ проверки в существующей среде (Spring, Springboot, Hibernate и т. Д.) Для обработки.
Пример ответа:
<Map>
<timestamp>1548946732529</timestamp>
<status>400</status>
<error>Bad Request</error>
<exception>org.springframework.web.bind.MethodArgumentNotValidException</exception>
<errors>
<codes>
<codes>NotEmpty.expectedData.dataInitial</codes>
<codes>NotEmpty.dataInitial</codes>
<codes>NotEmpty.java.lang.String</codes>
<codes>NotEmpty</codes>
</codes>
<arguments>
<arguments>
<codes>
<codes>expectedData.dataInitial</codes>
<codes>dataInitial</codes>
</codes>
<defaultMessage>dataInitial</defaultMessage>
<code>dataInitial</code>
</arguments>
</arguments>
<defaultMessage>may not be empty</defaultMessage>
<objectName>expectedData</objectName>
<field>dataInitial</field>
<rejectedValue/>
<bindingFailure>false</bindingFailure>
<code>NotEmpty</code>
</errors>
<message>Validation failed for object='myExpectedData'. Error count: 2</message>
<path>/api/endpoint</path>
</Map>