API Opaya untuk Aplikasi Web & Seluler.
Baca ini dalam bahasa lain: 中文.
Elide adalah perpustakaan Java yang memungkinkan Anda mengatur layanan Web GraphQL atau JSON API JSON dengan upaya minimal. Elide mendukung dua varian API:
Elide mendukung sejumlah fitur:
Kontrol akses ke bidang dan entitas melalui sintaks izin deklaratif dan intuitif.
JSON-API & GraphQL memungkinkan pengembang mengambil seluruh grafik objek dalam satu perjalanan pulang pergi. Hanya elemen yang diminta dari model data yang dikembalikan. Pendekatan Opini kami untuk mutasi membahas skenario aplikasi umum:
Pencarian penyaringan, penyortiran, pagination, dan teks didukung di luar kotak.
Elide mendukung beberapa mutasi model data dalam satu permintaan dalam JSON-API atau GraphQL. Buat objek, tambahkan mereka ke hubungan, ubah atau hapus bersama dalam satu permintaan atom.
Elide mendukung pertanyaan analitik terhadap model yang dibuat dengan lapisan semantik yang kuat. ELIDE API bekerja secara asli dengan Yavin untuk memvisualisasikan, mengeksplorasi, dan melaporkan data Anda.
Jelajahi, pahami, dan buat kueri terhadap API Elide Anda melalui dokumentasi Swagger yang dihasilkan atau skema GraphQL.
Kustomisasi perilaku operasi model data dengan atribut yang dihitung, anotasi validasi data, dan meminta kait siklus hidup.
Elide adalah agnostik untuk strategi kegigihan khusus Anda. Gunakan ORM atau berikan implementasi penyimpanan data Anda sendiri.
Informasi lebih lanjut tentang Elide dapat ditemukan di Elide.io.
Untuk mencoba Layanan Contoh Elide, lihat proyek ELIDE-SPRING-BOOT-Example.
Sebagai alternatif, gunakan proyek elide-standalone-example yang memungkinkan Anda untuk dengan cepat mengatur instance lokal elide yang berjalan di dalam aplikasi dermaga tertanam.
Cara paling sederhana untuk menggunakan Elide adalah dengan memanfaatkan JPA untuk memetakan model ELIDE Anda untuk Bertekanan:
Model harus mewakili model domain layanan web Anda:
@ Entity
public class Book {
@ Id
private Integer id ;
private String title ;
@ ManyToMany ( mappedBy = "books" )
private Set < Author > authors ;
}Tambahkan anotasi Elide untuk mengekspos model Anda melalui layanan web dan tentukan kebijakan keamanan untuk akses:
@ Entity
@ Include ( rootLevel = true )
@ ReadPermission ( "Everyone" )
@ CreatePermission ( "Admin OR Publisher" )
@ DeletePermission ( "None" )
@ UpdatePermission ( "None" )
public class Book {
@ Id
private Integer id ;
@ UpdatePermission ( "Admin OR Publisher" )
private String title ;
@ ManyToMany ( mappedBy = "books" )
private Set < Author > authors ;
}Tambahkan kait siklus hidup ke model Anda untuk menyematkan logika bisnis khusus yang mengeksekusi inline dengan operasi crud melalui layanan web:
@ Entity
@ Include ( rootLevel = true )
@ ReadPermission ( "Everyone" )
@ CreatePermission ( "Admin OR Publisher" )
@ DeletePermission ( "None" )
@ UpdatePermission ( "None" )
@ LifeCycleHookBinding ( operation = UPDATE , hook = BookCreationHook . class , phase = PRECOMMIT )
public class Book {
@ Id
private Integer id ;
@ UpdatePermission ( "Admin OR Publisher" )
private String title ;
@ ManyToMany ( mappedBy = "books" )
private Set < Author > authors ;
}
public class BookCreationHook implements LifeCycleHook < Book > {
@ Override
public void execute ( LifeCycleHookBinding . Operation operation ,
LifeCycleHookBinding . TransactionPhase phase ,
Book book ,
RequestScope requestScope ,
Optional < ChangeSpec > changes ) {
//Do something
}
}Ekspresi peta ke fungsi keamanan atau predikat yang didorong ke lapisan kegigihan:
@ SecurityCheck ( "Admin" )
public static class IsAdminUser extends UserCheck {
@ Override
public boolean ok ( User user ) {
return isUserInRole ( user , UserRole . admin );
}
}Untuk mengekspos dan meminta model -model ini, ikuti langkah -langkah yang didokumentasikan dalam panduan memulai.
Misalnya panggilan API, lihat:
Model analitik termasuk tabel, ukuran, dimensi, dan gabungan dapat dibuat baik sebagai pojos atau dengan bahasa konfigurasi HJSON yang ramah:
{
tables: [
{
name: Orders
table: order_details
measures: [
{
name: orderTotal
type: DECIMAL
definition: 'SUM({{$order_total}})'
}
]
dimensions: [
{
name: orderId
type: TEXT
definition: '{{$order_id}}'
}
]
}
]
}
Informasi lebih lanjut tentang mengonfigurasi atau meminta model analitik dapat ditemukan di sini.
Keamanan didokumentasikan secara mendalam di sini.
Silakan merujuk ke file contributing.md untuk informasi tentang cara terlibat. Kami menyambut masalah, pertanyaan, dan permintaan menarik.
Jika Anda berkontribusi untuk menggunakan IDE, seperti IntelliJ, pastikan untuk menginstal plugin Lombok.
Obrolan komunitas sekarang ada di Perselisihan. Bergabunglah dengan mengklik di sini.
Proyek ini dilisensikan berdasarkan ketentuan lisensi open source Apache 2.0. Silakan merujuk ke lisensi untuk persyaratan lengkap.
Intro to Elide Video
Buat layanan istirahat API JSON dengan boot dan elide
Keamanan Kustom dengan Server API JSON Spring Boot/ELIDE JSON
Masuk ke server API JSON boot/elide spring
Mengamankan Layanan Istirahat API JSON dengan Spring Boot dan Elide
Membuat entitas di server API JSON BOOT/ELIDE SPRING
Memperbarui dan Menghapus dengan Server API JSON Spring Boot/ELIDE JSON