Skip to main content

Belajar membuat RESTful CRUD API dengan Spring Boot, PostgreSQL, JPA, Hibernate

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 digenerate 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

Kode https://pastebin.com/6iNC3K9Z



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 Accounts, 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
kode https://pastebin.com/tG5BECiw

9. Answer Model

Kode https://pastebin.com/xvzgGzKa

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

Popular posts from this blog

Numpang Kerja Remote dari Bandung Creative Hub

Semalam kemarin (09 Januari 2019) tidak sengaja kami sekeluarga lewat Bandung Digital Hub saat pulang dari Fish Wow Cheeseee  yang di Jl. Lombok. Bandung Digital Hub ini sendiri berlokasi tidak jauh dari dari tempat kami makan tersebut, yaitu berlokasi di Jl. Laswi No.7, Kacapiring, Batununggal, Kota Bandung, Jawa Barat 40271. Berhubung untuk bulan Januari 2019 ini sedang tidak masuk ke kantor maka saya putuskan untuk besoknya (hari ini 09 Januari 2019) nyoba untuk bekerja remote dari Bandung Digital Hub , apalagi istri yang kebetulan follower pak Ridwan Kamil di Instagram juga Facebook dan tampaknya pernah lihat ulasan mengenai tempat ini sehingga tampak antusias supaya saya datang ketempat ini ini dan mencoba bekerja dari gedung creative hub dan coworking yang keren ini.  Tempat Parkir Masalah utama saat kita datang ke coworking space terutama yang berlokasi di Bandung (atau mungkin kota-kota lainnya) adalah lahan parkir, kadang lahan parkir ...

Numpang Kerja Remote dari Bandung Digital Valley

Satu lagi co-working place  gratisan dan keren yang cukup populer dikota Bandung, co-working place yang juga memberikan fasilitas tempat kerja (co-working place) dan fitur-fitur menarik lainnya,  co-working place keren  ini adalah Bandung Digital Valley atau yang sering disingkat BDV . C o-working place  Bandung Digital Valley ini  merupakan bagian dari Telkom , mulai aktif digunakan dari sekitar tahun 2012 lalu .  Tempat ini biasanya menjadi tempat favorit bagi para pengiat startup, freelancer, dan mahasiswa . Gedung BDV Gedung BDV Gedung BDV Co-working space Bandung Digital Valley ini sendiri berlokasi di Menara Bandung Digital Valley, Jl. Gegerkalong Hilir No.47, Sukarasa, Sukasari, Kota Bandung, Jawa Barat, detailnya bisa dilihat di Google map berikut. Pemandangan jalan setelah pintu satpam. Free Co-working Space Membership Untuk mulai menggunakan fasilitas co-working space ini secara gratis maka yang pe...

Membuat Authentikasi Berbasis Token pada Spring Boot dengan Spring Security dan JWT

Setelah beberapa kali mencari tutorial tentang otentikasi aplikasi web Spring Boot dengan menggunakan JWT yang mudah dipahami akhirnya saya menemukan artikel berbahasa Inggris tapi sangat mudah dipahami  dan diikuti, artikel tersbut berada disini , dengan judul " Spring Boot Token based Authentication with Spring Security & JWT ". Untuk memudahkan orang-orang yang terbiasa membaca artikel dalam bahasa indonesia (termasuk saya sendiri), artikel ini saya buat dan susun ulang (artikel aslinya tidak tertulis dengan runtut dan dapat membuat pemula bingung dengan berbagai error yang muncul) supaya lebih mudah untuk diikuti dan dapat di gunakan bersama. Applikasi yang akan kita buat adalah aplikasi web yang setiap endpoint-nya hanya bisa di akses oleh role tertentu. 1. Tools Yang Diperlukan IntelliJ Idea text editor. Spring Assistant Plugin. Postman. PostgreSQL + DBeaver. Min Java 8 Spring Boot 2.1.8 (dengan Spring Security, Spring Web, Spring Data JPA). jjwt 0.9.1. Maven 3.6.1....