Di artikel ini, Anda akan belajar cara menggunakan Speedment untuk membuat API CRUD REST lengkap untuk database.

Semakin jelas setiap tahun bahwa Spring Framework adalah salah satu kerangka pengembangan web Java yang paling banyak digunakan.
Ketika dekade berikutnya mendekat, modul Spring yang paling populer, Spring Boot, baru saja menerima pembaruan besar. Versi baru dari Spring Boot "2.2.0" dan 2020 hampir cocok satu sama lain. Oleh karena itu, tim pengembangan Speedment mengisi celah dengan memperbarui plugin Spring Boot.
Jika ini adalah pertama kalinya Anda mendengar tentang Speedment, Anda akan menikmatinya saat kami menunjukkan bagaimana plugin Spring Boot Speedment memungkinkan pengembang untuk dengan mudah membuat aplikasi database Spring menggunakan Speedment, ORM dengan antarmuka kueri berbasis API Stream yang kuat.
Tentang Speedment
Speedment dapat digambarkan sebagai ORM yang layak diterima komunitas Java - sebuah toolkit bagi mereka yang menyukai pengembangan yang cepat dan bahkan aplikasi yang lebih cepat.
Dengan menggunakan Java Stream API sebagai sarana utama untuk berkomunikasi dengan database yang dipilih, Speedment memungkinkan pengembang dengan pengalaman Java merasa di rumah. Selain API yang mudah digunakan, Speedment menyediakan pengembang dengan alat grafis yang menghasilkan model domain untuk mereka dalam hitungan detik.
Jika Anda tertarik pada Speedment secara keseluruhan, klik tautan berikut untuk
dokumentasi terperinci dengan contoh . Sisa dari artikel ini akan fokus pada plugin Spring Boot.
Spring Boot: Mulai Tercepat
Plugin Speedment Spring Boot telah ada selama beberapa waktu, tetapi Speedment 3.2.2 memperkenalkan fungsi utama - kemampuan untuk menghasilkan seluruh API CRUD REST langsung dari model database Anda.
Bergantung pada apakah Anda memulai dari awal atau sudah memiliki proyek, langkah-langkahnya akan berbeda, tetapi pastikan bahwa proses integrasi akan sederhana tanpa memandang keadaan proyek Anda.
Jika Anda ingin mengintegrasikan Spring Boot ke proyek Speedment yang ada, Anda perlu menambahkan 2 elemen berikut ke
pom.xml Anda:
<plugin> <groupId>com.speedment.enterprise</groupId> <artifactId>speedment-enterprise-maven-plugin</artifactId> <version>${speedment.version}</version> <configuration> <components> component>com.speedment.enterprise.plugins.spring.SpringGeneratorBundle</component> </components> <appName>${project.artifactId}</appName> <packageName>${project.groupId}</packageName> </configuration> ... // Database connector dependency </plugin> <dependencies> ... <dependency> <groupId>javax.annotation</groupId> <artifactId>javax.annotation-api</artifactId> <version>1.3.1</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <version>2.2.1.RELEASE</version> </dependency> <dependency> <groupId>com.speedment.enterprise.plugins</groupId> <artifactId>spring-runtime</artifactId> <version>${speedment.version}</version> </dependency> ... </dependencies>
Setelah menambahkan elemen-elemen ini pada regenerasi berikutnya dari model domain Anda, konfigurasi khusus pegas harus dihasilkan. Konfigurasi yang dihasilkan mengontrol koneksi database dan properti pendaftaran bin untuk berbagai manajer yang dihasilkan oleh Speedment.
Jika Anda memulai proyek dari awal, buka
penginisialisasi proyek , tempat proyek yang sudah jadi untuk Spring Boot akan dibuat untuk Anda. Bagaimana Anda akan mengkonfigurasi proyek itu terserah Anda, tetapi untuk memasukkan plugin Spring Boot dalam proyek yang dihasilkan, pastikan bahwa kotak centang di sebelah Spring dicentang di bagian plugins. Ketika konfigurasi proyek cocok untuk Anda, klik tombol
Unduh dan Anda akan menerima arsip proyek yang siap digunakan.

CRUD disederhanakan
Setelah Anda menginstal plugin, beberapa opsi Spring Boot tertentu akan tersedia di alat Speedment yang dapat Anda gunakan untuk mengonfigurasi REST API Anda. Anda dapat menjalankan alat Speedment dengan menjalankan perintah berikut:
mvn speedment:tool
Jika ini adalah pertama kalinya Anda menggunakan Speedment, Anda mungkin ingin membiasakan diri dengan alur kerja dengan mengikuti
tutorial Hello Speedment singkat.
Secara default, alat Speedment tidak menghasilkan REST API. Untuk menghasilkan API RUD CRUD untuk tabel tertentu, pilih tabel dalam tampilan hierarki dan pilih kotak centang "
Buat @RestController " bersama dengan opsi "
REST Aktifkan Buat / Perbarui / Hapus ". Saat Anda mengklik
Hasilkan , serangkaian pemetaan REST akan dibuat - URL yang menerapkan operasi CRUD untuk tabel tertentu.

Itu saja! Pengkodean manual tidak diperlukan. Jalankan saja proyek Spring yang dihasilkan dengan menjalankan perintah:
mvn spring-boot:run
Membuat Entitas Menggunakan REST
Untuk membuat entitas baru menggunakan REST API yang Anda buat, Anda harus menjalankan permintaan POST di jalur yang ditentukan dalam alat. Secara default, nama jalur ini cocok dengan nama tabel Anda, dengan awalan nama skema Anda. Jika Anda mengosongkan kotak centang "
REST Endpoint ", Anda dapat menentukan nama jalur arbitrer. Badan permintaan harus berisi pasangan nilai kunci di objek JSON, di mana "
Nama Bidang REST " nilai dari alat Speedment adalah kunci.
Misalnya, jika kami memiliki tabel yang bernama
orang dengan
id kolom,
nama dan
usia , kami akan mengirimkan permintaan berikut untuk membuat
orang entitas baru:
POST localhost:8080/db/person { "id": 1, "name": "Jane", "age": 25 }
atau
curl -d '{"id": 1,"name": "Jane","age": 25}' -H "Content-Type:application/json" -X POST localhost:8080/db/person
Jika nilai kolom
id dihasilkan secara otomatis (atau menggunakan urutan), Anda dapat mengecualikannya dari badan POST. Jika Anda ingin secara paksa mengecualikan kolom tertentu dari badan POST, klik kolom yang sesuai di tampilan bagan alat dan hapus centang pada kotak "
Sertakan dalam Buat Tubuh " dan buat kembali model domain Anda. Di sisi lain, jika Anda ingin memastikan bahwa ada kolom tertentu di badan POST ketika menjalankan permintaan, centang "Diperlukan di Buat Tubuh" dan buat kembali model domain Anda.

Mengambil Entitas Menggunakan REST
Untuk mendapatkan entitas yang baru dibuat, kami harus menjalankan permintaan GET dengan cara yang sama dengan yang digunakan untuk membuat entitas:
GET localhost:8080/db/person
atau
curl localhost:8080/db/person/1
Permintaan yang selesai akan mengembalikan Array JSON dari semua entitas yang ada. Dalam kasus kami, ini akan mengembalikan array hanya dengan entitas kami saja:
[ { "id": 1, "name": "Jane", "age": 25 } ]
Konsep lanjutan seperti filter dan penyortir dirinci dalam dokumentasi resmi Speedment.
Memperbarui entitas yang ada menggunakan REST
Memperbarui entitas yang ada menggunakan API REST mirip dengan membuat entitas. Alih-alih permintaan POST, kami menjalankan permintaan PATCH, dan jalur diperluas dengan pengenal entitas. Pengidentifikasi entitas mana yang bergantung pada kolom kunci utama tabel ini. Karena kolom PK (kunci utama) kami adalah tipe numerik, pengidentifikasi entitas kami akan berupa bilangan bulat.
Untuk memperbarui entitas yang kami buat pada contoh sebelumnya, kami akan menjalankan kueri berikut:
PATCH localhost:8080/db/person/1 { "name": "Mike", "age": 43 }
atau
curl -d '{"name": "Jane","age": 25}' -H "Content-Type:application/json" -X PATCH localhost:8080/db/person/1
Secara default, semua kolom termasuk dalam tubuh PATCH (kecuali untuk kolom kunci utama), tetapi tidak diperlukan. Jika Anda ingin secara paksa mengecualikan kolom tertentu dari badan permintaan, klik kolom terkait di tampilan hierarki alat dan hapus centang pada kotak "
Sertakan dalam Badan Pembaruan " dan buat kembali model domain Anda. Di sisi lain, jika Anda ingin memastikan bahwa ada kolom di badan permintaan, centang โ
Diperlukan di Badan Perbaruan โ dan perbarui model domain Anda.
Menghapus Entitas Menggunakan REST
Menghapus entitas menggunakan REST API cukup sederhana - kami menjalankan permintaan DELETE dengan cara yang sama yang digunakan untuk memperbarui entitas.
Untuk menghapus entitas yang kami buat dan perbarui dalam contoh sebelumnya, kami akan menjalankan kueri berikut:
DELETE localhost:8080/db/person/1
atau
curl -X DELETE localhost:8080/db/person/1
Ringkasan
Meluncurkan proyek baru kadang-kadang bisa merepotkan. Sebagai pengembang, kami ingin menghindari ketidaknyamanan ini sebanyak mungkin dan terjun langsung ke pengkodean. Dengan plugin Speed โโBoot Spring Boot yang baru, pengembang dapat mempercepat peluncuran proyek baru dengan secara otomatis menghasilkan semua konfigurasi yang diperlukan dan pengendali REST langsung dari database.
Kami harap Anda menikmati panduan singkat ini untuk fitur CRUD baru yang disediakan oleh plugin Boot Musim Semi Speedment. Jika Anda tertarik dengan penjelasan yang lebih rinci tentang fungsi-fungsi baru, buka
dokumentasi resmi , di mana Anda akan menemukan penjelasan terperinci dan contoh-contoh fungsi CRUD baru.
Bacaan tambahan
Membuat REST API Bagian 4: Menangani Permintaan POST, PUT dan DELETEMembangun Aplikasi CRUD RESTful Spring Boot MVC Dasar: Memulai Java Spring