public class AccountDTO {
@JsonIgnore
private Long id;
@NotNull
private String username;
@NotNull
private String password;
@JsonIgnore
private String status;
@JsonIgnore
private String filler;
// getters & setters
}
Вы можете создать DTO (объект транзакции данных), как показано выше. Вот ссылка на это wiki .
Следующий пользовательский ввод карты входа в этот DTO с помощью аннотации @RequestBody.
@RestController
public class AccountController {
@GetMapping("/accounts")
public ResponseEntity<Account> validateAccount(@RequestBody AccountDTO accountDTO) {
return new ResponseEntity<>(accountService.validate(accountDTO), HttpStatus.OK);
}
}
Или вы можете использовать
@RestController
public class AccountController {
@GetMapping("/accounts")
public Response validateAccount(@RequestBody AccountDTO accountDTO) {
return new ResponseEntity().ok(accountService.validate(accountDTO));
}
}
Пользовательский ввод будет преобразован из json в AccountDTO с использованием любого процессора JSON, который вы используете, скорее всего, это будет com.fasterxml.jackson.core.
Аннотации @JsonIgnore и @NotNull будутубедитесь, что используются только поля имени пользователя и пароля, а другие игнорируются при получении ввода от пользователя.
Вы можете передать этот DTO своим классам обслуживания и использовать что-то вроде findByUsername () в вашей бизнес-логике и вернуть заполненный AccountDTO, используяниже функция mapper или некоторые внешние библиотеки, такие как Model Mapper или MapStruct.
public toAccountDTO(Account account) {
AccountDTO accountDTO = new AccountDTO();
accountDTO.setUsername(account.getUsername());
// and so on...
return accountDTO;
}
И для вашего последнего запроса оберните возвращенный объект AccountDTO в оболочку ResponseEntity, чтобы предоставить правильный код ответа с вашей полезной нагрузкой. Вот ссылка на ResponseEntity Документы Java .