Membuat REST Api sederhana dengan Spring Boot Part. II
Daftar Isi
- Part I : Membuat Projek, Model dan Repository
- Part II : Membuat Service Layer untuk User
- Part III : Membuat Custom Exception untuk Rest API Response
- Part IV : Membuat Endpoint Controller UserController
Membuat Service Layer — User Service
Service Layer adalah Layer dimana kita menyimpan Logic dari sebuah aplikasi seperti memanipulasi data, memfilter dan lain-lain dan biasanya menggunakan anotasi @Service dalam UserService ini kita mempunyai dependensi ke UserRepository karena dalam service ini hanya melakukan createUser, updateUser, findAllUsers, findUserById dan deleteUserById.
@Service
public class UserService {
private final UserRepository userRepository;
@Autowired
public UserService(UserRepository userRepository) {
this.userRepository = userRepository;
} // TODO
}
buat sebuah method createUser untuk menyimpan data user yang baru.
public User createUser(User user) {
Optional<User> userOptional = userRepository.findByEmail(user.getEmail());
if(userOptional.isPresent()) {
throw new UserRegistrationException("User with email "+ user.getEmail()+" already exists");
}
return userRepository.save(user);
}
dalam method ini, sebelum nya dilakukan pengecekan data inputan, apakah email nya sudah terdaftar atau belum, jika ada maka lemparkan UserRegistrationException (yang akan dibahas di artikel selanjutnya). dan jika tidak ada, maka lakukan proses penyimpanan.
Dan lanjutkan method di bawah ini, karena tidak ada logic disini maka saya tidak menambahkan penjelasan detail nya
public User updateUser(User user) {
return userRepository.save(user);
}
public List<User> findAllUsers() {
return userRepository.findAll();
}
public Optional<User> findUserById(Long id) {
return userRepository.findById(id);
}
public void deleteUserById(Long id) {
userRepository.deleteById(id);
}
Untuk code lengkap nya, teman-teman bisa clone dari repo saya di https://github.com/teten777/spring-boot-rest-api