Czy kontroler ma tylko wywoływać metody i nie zawierać żadnej logiki?
Taki prosty przykład, który sposób jest lepszy.
//Kod z Kontrolera obecnie
@PostMapping("/add")
public ResponseEntity<?> addCar(@RequestBody Car car) {
carService.save(car);
if (car.getId != null) {
return ResponseEntity.ok(car);
}
return new ResponseEntity<Object>(HttpStatus.BAD_REQUEST);
}
//Czy lepiej jak to będzie w klasie serwisu, a w kontrolerze tylko wyloanie metody
public ResponseEntity<?> save2(@RequestBody Car car) {
carRepository.save(car);
if (car.getId != null) {
return ResponseEntity.ok(car);
}
return new ResponseEntity<Object>(HttpStatus.BAD_REQUEST);
}
//Kod kontrolerza
@PostMapping("/add")
public ResponseEntity<?> addCar(@RequestBody Car car) {
return carService.save2(car);
}
Drugie pytanie jak przechowywać hasła w bazie danych, wiadomo, że nie powinien być to jawny tekst. Można użyć org.apache.commons.codec i np.
DigestUtils.sha1(password)); zwraca tablicę bajtów, więc w bazie będzie to blob, czy lepiej tablicę bajtów przekonwertować do String64 i w bazie użyć pola też typu varchar?