Симулировать подтверждение ответа клиента - PullRequest
0 голосов
/ 24 января 2020

У меня есть два приложения A и B, взаимодействующих друг с другом с помощью FeignClient. Как приложение, AI хочет иметь проверку данных, возвращаемых приложением B. Если я хочу проверить параметры запроса, я могу легко использовать аннотацию @Valid и аннотировать объект с правильными аннотациями валидации пружины. А как насчет ответа?

@FeignClient()
public interface AccountClient {
   @PostMapping("/accounts/account/create")
   void createAccount(@Valid CreateAccountRequest request);

   @PostMapping("/accounts/account/get")
   AccountResponse getAccount(AccountRequest request);

}
public classs AccountResponse {
   @NotNull
   public String status;
}

Код в качестве примера. Я могу легко проверить CreateAccountRequest в приложении B. Но как насчет AccountResponse? В этом случае @NotNull не работает. Я бы предпочел не получать ответ и вручную проверять, если статус! = Ноль, потому что у меня было бы намного больше полей, подобных этому.

1 Ответ

0 голосов
/ 25 января 2020

В этом случае проверка ответа должна работать, если вы поместите @Validated на AccountClient интерфейс, а затем @Valid на getAccount метод.

@Validated
@FeignClient()
public interface AccountClient {
   @PostMapping("/accounts/account/create")
   void createAccount(@Valid CreateAccountRequest request);

   @Valid
   @PostMapping("/accounts/account/get")
   AccountResponse getAccount(AccountRequest request);

}
...