Java / Spring: Cara menghasilkan sepenuhnya API CRUD REST menggunakan Speedment

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 DELETE

Membangun Aplikasi CRUD RESTful Spring Boot MVC Dasar: Memulai Java Spring

Source: https://habr.com/ru/post/id483026/


All Articles