Membuat REST Api sederhana dengan Spring Boot Part. II

Teten Nugraha
Backend Habit
Published in
2 min readJan 6, 2020

Daftar Isi

Photo by Magnus Engø on Unsplash

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

--

--

Teten Nugraha
Backend Habit

Software Engineer, 8 years of experience. Expertise with Microservices, Spring Boot, CICD, Docker https://www.linkedin.com/in/teten-nugraha