Membuat REST Api sederhana dengan Spring Boot Part. I

Teten Nugraha
Backend Habit
Published in
3 min readJan 3, 2020

Dalam artikel ini kita akan membuat aplikasi CRUD Sederhana menggunakan REST API Spring boot. Disamping itu, akan dilanjutkan dengan cara implementasi JUnit + Mockito untuk unit testing nya dan akan kita coba padukan dengan Jacoco + Sonarqube untuk code coverage nya di artikel yang berbeda.

Daftar Isi

Photo by Florian Olivo on Unsplash

Namun, dalam artikel ini teman-teman saya asumsikan sudah belajar Java dan maven terlebih dahulu.

Prasyarat

  • JDK versi 1.8 atau versi diatas nya, bisa menggunakan versi Openjdk bisa kalian unduh disini https://adoptopenjdk.net/
  • Maven 3 atau versi diatas nya
  • IDE : IntelliJ IDEA (bisa menggunakan Eclipse atau Netbeans)

Generate Projek Baru

Buat projek baru dengan membuka situs https://start.spring.io/ sebagai projek generator untuk Spring Boot

Adapun dependensi yang kita gunakan dalam projek ini yaitu :

  • Spring Boot Actuator , adalah library yang berfungsi untuk memonitor dan mengatur aplikasi kita yang berbasis HTTP sehingga kita bisa memonitor health, metrics, info dari endpoint yang kita buat nantinya.
  • Spring Boot Data JPA, library yang akan digunakan untuk berkomunikasi dengan database seperti Create, Read, Update, Delete dan Select.
  • Spring Web, library untuk membuat Rest API salah satu annotation yang akan dipakai diantaranya @RestController , @GetMapping, @PostMapping adalah salah satu bagian dari library ini.
  • Spring Dev Tools, library untuk mempermudah pengembangan aplikasi dengan fitur salah satu nya yaitu Live Reload, dan Automatic Restart
  • H2 Database, adalah salah satu RBBMS yang dibuat menggunakan Java dan biasanya disebut dengan memory database.
  • Lombok, library untuk mempercepat penulisan Getter, Setter dan Constructor.

Membuat User Model

Langsung saja, langkah pertama yaitu membuat model User seperti dibawah ini

@Entity
@Table(name = "users")
@Setter
@Getter
@NoArgsConstructor
@AllArgsConstructor
public class User {

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;

@NotEmpty(message = "Email should not be empty")
@Column(nullable = false, unique = true, length = 100)
private String email;

@Column(nullable = false, length = 100)
private String password;

@Column(nullable = false, length = 100)
private String name;

}

pada class model ini kita menggunakan library Lombok yaitu :

  • Setter : untuk generate setter method untuk setiap atribut User class
  • Getter : untuk generate getter method untuk setiap atribut User class
  • NoArgsContructor : untuk generate constructor kosong
  • AllArgsContructor : untuk generate constructor yang mempunyai parameter sama dengan semua atribut

walaupun tidak terlihat dari class nya , tapi jika kita lihat dari atribut, terlihat lombok berhasil menggenerate

Hasil Generate Lombok

Membuat User Repository

langkah selanjut nya yaitu membuat User Repository yang berupa interface seperti di bawah ini

public interface UserRepository extends JpaRepository<User, Long> {

Optional<User> findByEmail(String email);

}

di bagian tengah terlihat, ada method untuk mengambil Object User menggunakan email, findByEmail akan kita gunakan nanti pada saat melakukan proses save / update data User.

Optional<User> findByEmail(String email);

Mengapa menggunakan Optional ? hal ini akan kita gunakan jika User nya bernilai null karena Email yang di masukan tidak ada dalam database, dan kita akan menggunakan custom exception yang ada di Part III supaya response ke frontend tetap rapih.

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