MongoDB
 sql >> Teknologi Basis Data >  >> NoSQL >> MongoDB

Bagaimana cara mengekspos metode REST baru melalui repositori Spring Data MongoDB dengan metadata ALPS/HATEOAS?

tl;dr

Ini akan membutuhkan implementasi khusus untuk repositori dan pengontrol.

Detail

Kami harus memastikan kami tidak tersesat dalam semua aspek berbeda yang Anda sebutkan di sini. Saya akan mencoba mengurai ranting-rantingnya dari bawah ke atas:

Mengeksekusi skrip MongoDB

Sebagai dokumentasi referensi tentang menjalankan skrip dengan MongoDB menyatakan (dan Anda sudah menemukan), fungsionalitasnya disediakan by MongoTemplate ScriptOperations . Jadi cara menggunakan API itu harus jelas. Konsultasikan Javadoc untuk informasi lebih lanjut.

Mengeksekusi skrip melalui repositori Spring Data

Hal berikutnya yang Anda minta adalah menjalankan skrip tersebut melalui abstraksi repositori. Untuk tidak membuang bayi dengan air mandi di sini, pastikan kita memahami tujuan dari repositori:ini mensimulasikan kumpulan akar agregat dan mengaksesnya tanpa mengekspos mekanisme persistensi yang mendasarinya . Mengekspos tipe seperti ExecutableMongoScript pada repositori akan merusak sifat yang terakhir. Jadi pendekatan yang benar di sini adalah membuat implementasi khusus untuk fungsi tertentu seperti yang dijelaskan dalam dokumentasi referensi tentang repositori Spring Data .

Mengekspos fungsionalitas melalui REST

Saya berasumsi Anda mengacu pada fitur Spring Data REST untuk mengekspos sumber daya khusus untuk metode kueri repositori dalam pertanyaan Anda. Spring Data REST saat ini hanya mengekspos metode kueri deklaratif secara otomatis, sebagian besar karena alasan sulit untuk mempertimbangkan metode HTTP yang benar untuk mendukung implementasi khusus karena kami tidak dapat menebak apa yang terjadi di dalam metode.

Cara yang disarankan untuk mengekspos metode kueri repositori kustom menggunakan pengontrol kustom dengan @RequestMapping sesuai dengan tujuan Anda, memanggil repositori dan menggunakan PersistentEntityResourceAssembler disuntikkan ke dalam metode handler untuk menghasilkan PersistentEntityResource untuk kembali.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Apakah mungkin membuat database baru di MongoDB dengan Mongoose?

  2. Junit/Fongo:Cara menggunakan Fongo di unit test untuk memeriksa NotNull

  3. Indeks unik luwak tidak berfungsi!

  4. Bagaimana cara melakukan pencarian pencarian di Mongoose?

  5. mongodb dapatkan _id sebagai string dalam permintaan pencarian