Saya membuat API Istirahat menggunakan Boot Spring dan saya menggunakan Hibernate Validation untuk memvalidasi input permintaan.
Tetapi saya juga memerlukan jenis validasi lain, misalnya ketika data pembaruan perlu diperiksa, jika id perusahaan tidak ada, saya ingin melempar pengecualian khusus.
Haruskah validasi ini ditempatkan di lapisan layanan atau lapisan pengontrol?
Lapisan Layanan:
public Company update(Company entity) {
if (entity.getId() == null || repository.findOne(entity.getId()) == null) {
throw new ResourceNotFoundException("can not update un existence data with id : "
+ entity.getId());
}
return repository.saveAndFlush(entity);
}
Lapisan Pengontrol:
public HttpEntity<CompanyResource> update(@Valid @RequestBody Company companyRequest) {
Company company = companyService.getById(companyRequest.getId());
Precondition.checkDataFound(company,
"Can't not find data with id : " + companyRequest.getId());
// TODO : extract ignore properties to constant
BeanUtils.copyProperties(companyRequest, company, "createdBy", "createdDate",
"updatedBy", "updatedDate", "version", "markForDelete");
Company updatedCompany = companyService.update(company);
CompanyResource companyResource = companyAssembler.toResource(updatedCompany);
return new ResponseEntity<CompanyResource>(companyResource, HttpStatus.OK);
}