Kerangka kerja terbuka untuk merakit gateway API Ultra Performance dengan Middlewares; Sebelumnya dikenal sebagai Kerangka Krakend , dan layanan inti dari Gateway API Krakend.
Konsumen konten API REST (khususnya dalam layanan microser) Sering menanyakan layanan backend yang tidak dikodekan untuk implementasi UI. Ini tentu saja merupakan praktik yang baik, tetapi konsumen UI perlu melakukan implementasi yang menderita banyak kompleksitas dan beban dengan ukuran respons layanan mikro mereka.
Lura adalah pembangun gateway API dan generator proxy yang berada di antara klien dan semua server sumber, menambahkan lapisan baru yang menghilangkan semua kompleksitas kepada klien, memberikan mereka hanya informasi yang dibutuhkan UI. Lura bertindak sebagai agregator dari banyak sumber ke titik akhir tunggal dan memungkinkan Anda untuk mengelompokkan, membungkus, mengubah, dan menyusut respons. Selain itu mendukung segudang pasukan menengah dan plugin yang memungkinkan Anda untuk memperluas fungsionalitas, seperti menambahkan otorisasi oAuth atau lapisan keamanan.
Lura tidak hanya mendukung HTTP (S), tetapi karena itu adalah satu set perpustakaan generik, Anda dapat membangun semua jenis gateway API dan proxy, termasuk misalnya, gateway RPC.
Pengembang seluler perlu membangun halaman depan tunggal yang membutuhkan data dari 4 panggilan berbeda ke layanan backend mereka, misalnya:
1) api.store.server/products 2) api.store.server/marketing-promos 3) api.users.server/users/{id_user} 4) api.users.server/shopping-cart/{id_user}
Layar sangat sederhana, dan klien seluler hanya perlu mengambil data dari 4 sumber yang berbeda, menunggu perjalanan pulang pergi dan kemudian memilih hanya beberapa bidang dari respons.
Bagaimana jika ponsel dapat memanggil satu titik akhir?
1) lura.server/frontpage/{id_user}
Itu adalah sesuatu yang bisa dilakukan Lura untuk Anda. Dan seperti ini penampilannya:
Lura akan menggabungkan semua data dan hanya mengembalikan bidang yang Anda butuhkan (perbedaan ukuran dalam grafik).
Kunjungi situs web Proyek Lura untuk informasi lebih lanjut.
Kode Sumber untuk Kerangka Proyek Lura. Ini dirancang untuk bekerja dengan middleware Anda sendiri dan memperluas fungsionalitas dengan menggunakan komponen kecil, independen, yang dapat digunakan kembali mengikuti filosofi UNIX.
Gunakan repositori ini jika Anda ingin membangun dari sumber API Gateway Anda atau jika Anda ingin menggunakan kembali komponen di aplikasi lain .
Jika Anda memerlukan gateway API yang berfungsi penuh, Anda dapat mengunduh biner Krakend untuk arsitektur Anda atau membangunnya sendiri.
Proyek Lura disajikan sebagai perpustakaan GO yang dapat Anda sertakan dalam aplikasi GO Anda sendiri untuk membangun proxy atau API gateway yang kuat. Sebagai contoh lengkap, periksa repositori Krakend CE.
Tentu saja, Anda perlu diinstal di sistem Anda untuk mengkompilasi kode.
Contoh yang siap digunakan:
Paket MaintImport ("Bendera" "Log" "OS" "github.com/luraproject/lura/config" "github.com/luraproject/lura/logging" "github.com/luraproject/lura/proxy" "github.com/ LURAPRECT/LURA/ROUTER/GIN ") func Main () {port: = flag.int (" p ", 0, "Port of the Service") Logglevel: = flag.string ("l", "error", "level logging") debug: = flag.bool ("d", false, "aktifkan debug") configFile: = flag: .String ("c", "/etc/lura/configuration.json", "path to configuration filename") flag.parse () parser: = config.newparser () serviceConfig, err: = parser.parse (*configFile) jika err! = nil {log.fatal ("error:", err.error ())) } serviceConfig.debug = serviceConfig.debug || *debugif *port! = 0 {serviceConfig.port = *port} logger, _: = logging.newlogger ( *loglevel, os.stdout, "[lura]") routerfactory: = gin.defaultfactory (proxy.defaultcory (logger)) , logger) routerfactory.new (). run (serviceConfig) }
Kunjungi Tinjauan Kerangka Umum untuk detail lebih lanjut tentang komponen proyek Lura.
File konfigurasi lura
Lihat hasil patokan beberapa komponen Lura
Kami selalu senang menerima kontribusi. Jika Anda memiliki pertanyaan, saran, bug silakan buka masalah. Jika Anda ingin mengirimkan kode, buat masalah dan kirimkan permintaan tarik untuk ditinjau.
Baca Kontribusi.MD untuk informasi lebih lanjut.
Ikuti kami di Twitter: @luraproject
Kunjungi Slack Channel kami
Baca dokumentasinya
Nikmati Lura!