Catatan milik saya dalam belajar membuat
RESTful CRUD API dengan Spring Boot, PostgreSQL, JPA, Hibernate yang saya pelajari dari
web ini.
1. Buat Project
Disini saya membuat project dengan cara di
generate dengan menggunakan
Spring CLI. Bila ingin menggunakan tools yang tersedia secara online maka hal yang sama juga dapat dilakukan dengan menggunakan https://start.spring.io/, untuk cara terakhir adalah dengan dibuat langsung di Eclipse IDE terserang ingin gunakan yang mana karena hasilnya adalah Maven based project.
> Perintah CLI untuk membuat project Spring
$ spring init --name=postgres-demo --dependencies=web,jpa,postgresql api-demo
> Hasil Eksekusi Perintah di Terminal
 |
Berbagai macam files dan folders hasil dari proses generate project Spring dengan CLI. |
2. Buka di STS 4 Eclipse
Mari kita lanjutkan dengan membuka project yang telah kita generate dengan menggunakan Eclipse (STS 4.0). Membuka project hasil generate ini adalah seperti membuka Maven project lainnya dengan cara diimport.
 |
Import project untuk dibuka di STS |
 |
Hasil Import project, tunggu beberapa detik hingga jadi seperti dibawah. |
 |
Project telah siap. |
3. Buat Folders yang Diperlukan
 |
Folder-folder yang diperlukan |
4. Konfigurasi PostgreSQL
Pertamatama mari konfigurasikan Spring Boot supaya dapat menggunakan PostgreSQL sebagai tempat penyimpanan data. kita dapat melakukannya hanya dengan menambahkan url, nama pengguna, dan kata sandi database PostgreSQL di src/main/resources/application.properties.
Cek Konfigurasi lokal kita, apa saja attribut koneksinya.
- Username: postgres
- Password: postgres
- Database: spring_apidemo
- Host: localhost
- Port: 5432
Edit application.properties
 |
application.properties |
Run as Spring Boot Application
Mari kita coba apakah ada kesalahan hingga tahap ini dengan cara menjalankan project ini dan amati apa saja yang terjadi dari logs yang dihasilkan.
 |
Running dari Eclipse |
 |
Running From Console |
Oke masih jalan, mari kita lanjut ke tahap selanjutnya dengan mempersiapkan penggunaan JPA dan membuat Domain Entity Model.
> Enable JPA Auditing
Harap diperhatikan bahwa untuk mengaktifkan
JPA Auditing maka kita harus menambahkan anotasi
@EnableJpaAuditing pada main class kita.
In any business application, auditing simply means tracking and logging every change we do in our persisted records, which simply means tracking every insert, update, and delete operation and storing it.sumber
|
PostgresDemoApplication.java
|
5. Domain Entity Model
Domain Entity Model adalah class yang dipetakan ke tabel terkait di dalam database. Kita memiliki dua domain model utama dalam aplikasi kita yaitu: Question dan Answer. Kedua domain model ini akan memiliki relasi satu sama lain.
Mengabstraksi hal-hal yang umum digunakan dalam base kelas terpisah dapat membuat kode lebih singkat dan mudah untuk dipahami. Kita akan membuat kelas yang disebut AuditModel yang akan menangani hal ini.
Yang harus diingat dan jadi catatan disini adalah AuditModel ini akan diextend oleh entiti model lainnya didalam program kita ini.
Base Model Class AuditModel.java
 |
AuditModel.java |
Domain Model dan Repository
Instalasi dan konfigurasi sudah selesai hingga disini, mari kita lanjut ke proses selanjutnya, kali ini kita mulai dengan menyiapkan Model Domain Entity dan Repository untuk mengelola database.
7. Question Model
8. Question Repository
Sebelum masuk kesini pasti bingung dengan pertanyaan yang muncul, "Lho, kok repository-nya interface ? apa-apaan ini!"
Defining this interface serves two purposes: First, by extending JpaRepository
we get a bunch of generic CRUD methods into our type that allows saving Account
s, deleting them and so on. Second, this will allow the Spring Data JPA repository infrastructure to scan the classpath for this interface and create a Spring bean for it. sumber
9. Answer Model
10. Answer Repository
Membuat REST APIs
Baiklah, sekarang semua sudah siap, mari kita mulai lanjutkan dengan membuat REST APIs dengan sebuah controller yang melakukan operasi C.R.U.D pada table questions and answers.
*Loncat ke no 13 dan selesaikan dulu itu biar Eclipse tidak memberi error lalu kembali kesini.
11. QuestionController
12. AnswerController
13. Membuat class custom berupa ResourceNotFoundException *
14. Mencoba Applikasi dengan menggunakan POSTMAN
14.1. Membuat Question
14.2. Get Questions
14.3. Create Answer
14.4. Get all answers of a Question
Link data postman diatas https://www.getpostman.com/collections/3c85906a435da9eae311
Hore akhirnya berhasil membangun REST API dari awal dengan Spring Boot, PostgreSQL, JPA, dan Hibernate.
Sumber:
https://www.callicoder.com/spring-boot-jpa-hibernate-postgresql-restful-crud-api-example/
Comments
Post a Comment