BloomRPC adalah jawaban atas pertanyaan yang pada akhirnya ditanyakan oleh setiap pengembang gRPC: “mana Postman saya untuk gRPC?” Muat berkas .proto, dapatkan badan permintaan JSON yang dapat diedit, lalu kirim. Itu sederhana, gratis, dan memperoleh sekitar 9.000 bintang GitHub karena melakukan satu hal dengan baik. Kemudian, pada tanggal 4 Januari 2023, repositori tersebut diarsipkan. README tidak berbasa-basi: proyek terhenti, masalah menumpuk, dan para pengelola sekarang menyatakan dengan jelas bahwa “penggunaannya tidak lagi disarankan.” Mereka mengarahkan Anda ke daftar awesome-grpc dan mendoakan yang terbaik.
Ini jawaban langsungnya: Apidog adalah alternatif BloomRPC terbaik untuk sebagian besar tim, karena tidak hanya menggantikan jendela pemuatan .proto. Ini mendukung keempat jenis panggilan gRPC (unary, server streaming, client streaming, dan bidirectional streaming), mengimpor berkas .proto dari jalur lokal, URL, atau refleksi server, dan menempatkan pekerjaan gRPC Anda dalam proyek yang sama dengan titik akhir REST, WebSocket, dan GraphQL Anda, dengan dokumentasi, kolaborasi, dan pengaturan debugging yang disimpan. Jika Anda hanya membutuhkan panggilan sekali pakai dari terminal, ada alat yang lebih ringan, dan kami juga akan membahasnya secara jujur. Artikel ini menjelaskan apa yang hilang dengan BloomRPC, apa yang menggantikannya, dan bagaimana cara migrasinya.
Apa itu BloomRPC, dan mengapa sekarang tiada
BloomRPC dirilis pada tahun 2018 sebagai aplikasi desktop Electron dengan satu tugas: melakukan panggilan gRPC tanpa menulis klien. Anda mengimpor berkas .proto Anda, ia mencantumkan layanan dan metode, menghasilkan kerangka JSON untuk setiap pesan permintaan, dan memungkinkan Anda mengedit metadata dan mengirim. Untuk panggilan unary dan streaming dasar, itu cukup baik, dan “cukup baik dan gratis” menjadikannya GUI gRPC standar selama bertahun-tahun.
Pemberitahuan arsip mengakhiri era itu dengan bersih. Repositori yang diarsipkan berarti tidak ada perbaikan bug, tidak ada pembaruan dependensi, dan tidak ada rilis. Untuk aplikasi Electron, itu bukanlah keadaan netral: versi Chromium dan Node yang dibundel kedaluwarsa dukungan keamanannya, sintaks proto dan fitur gRPC yang lebih baru tidak tertangani, dan bug yang diketahui (BloomRPC memiliki masalah yang telah lama ada seputar impor proto dan alur streaming tertentu) tetap berada di tempatnya. Para pengelola jujur tentang hal itu, yang lebih baik daripada yang berhasil dilakukan banyak proyek mati. Pesannya adalah: berhenti menginstal ini.
Orang-orang masih mencari BloomRPC karena bentuk alatnya tepat. Pertanyaannya adalah apakah Anda mengganti bentuknya (jendela gRPC mandiri lainnya) atau memperbaiki fragmentasi yang mendasari: sebagian besar tim yang menjalankan gRPC juga menjalankan REST, dan mengujinya dalam dua alat yang tidak terhubung selalu menjadi biaya yang secara diam-diam dibebankan oleh BloomRPC. Kami pernah menulis sebelumnya tentang apa yang menjadikan klien gRPC yang baik; versi singkatnya adalah bahwa “memuat protos, mengirim panggilan” kini adalah standar dasar, dan pembeda berada di atas itu.
Jawabannya: Apidog
Apidog adalah platform pengembangan API yang digunakan oleh lebih dari 500.000 pengembang, meliputi desain, debugging, pengujian, mocking, dan dokumentasi. Dukungan gRPC-nya, berdasarkan dokumentasi resmi, mencakup apa yang dilakukan BloomRPC dan bagian-bagian yang tidak pernah diselesaikan BloomRPC:
- Keempat jenis panggilan. Unary, server streaming, client streaming, dan bidirectional streaming semuanya didukung. Panggilan streaming berfungsi seperti sesi WebSocket: buka panggilan, lalu tulis dan kirim pesan dari tab Pesan sementara tampilan linimasa menunjukkan pesan yang dikirim dan diterima secara berurutan. Dukungan streaming BloomRPC parsial dan penuh bug pada akhirnya; di sini itu adalah fitur yang terdokumentasikan.
- Tiga cara untuk mengimpor definisi API Anda. Muat berkas .proto lokal, impor dari URL, atau gunakan refleksi server untuk menarik layanan langsung dari server gRPC yang sedang berjalan tanpa berkas proto yang tersedia. Jika protos Anda bergantung pada protos lain, Anda menambahkan direktori dependensi sekali saja.
- JSON masuk, JSON keluar. Seperti BloomRPC, Apidog merender pesan protobuf sebagai JSON yang dapat diedit, jadi Anda tidak perlu mengodekan muatan biner secara manual. Jika Anda perlu memahami pemetaan itu, lihat protobuf ke JSON.
- TLS, metadata, dan autentikasi. Alihkan grpc:// atau grpcs:// per permintaan, dan lampirkan metadata serta konfigurasi autentikasi untuk pengaturan yang sebenarnya dimiliki layanan. Untuk pola token dan mTLS, panduan autentikasi gRPC kami sangat cocok dengan ini.
- Bukan jalan buntu. Panggilan gRPC yang disimpan (URL server, pesan, metadata) dapat dibagikan dengan rekan tim, dan mereka berada di ruang kerja yang sama dengan titik akhir REST, skenario pengujian, dan dokumentasi yang diterbitkan. Itulah bagian yang tidak pernah ditawarkan oleh jendela gRPC mandiri mana pun.
Seperti apa peralihan fitur demi fitur
Melakukan panggilan
Penggunaan sehari-hari akan terasa akrab. Impor protos, pilih layanan dan metode, edit badan JSON yang dihasilkan, atur alamat server, kirim. Panggilan unary mengembalikan panel respons; panggilan streaming membuka sesi di mana Anda mengirim pesan dan melihat linimasa. Kode status kembali sebagai kode status gRPC, yang dibaca berbeda dari HTTP; simpan referensi kode status gRPC agar mudah diakses di minggu pertama.
Streaming, secara spesifik
Ini adalah peningkatan paling tajam. Streaming sisi klien dan bidirectional BloomRPC adalah sumber umum masalahnya yang terbuka. Apidog mendokumentasikan keempat mode dan memperlakukan panggilan streaming sebagai sesi langsung daripada permintaan satu kali. Jika layanan Anda sangat bergantung pada aliran data, perbedaan itu adalah seluruh keputusan; untuk latar belakang tentang mode itu sendiri, lihat penjelasan streaming gRPC.
Refleksi server
BloomRPC memerlukan berkas proto. Apidog juga mendukung refleksi server, jadi Anda dapat mengarahkannya ke server yang mendukung refleksi dan menelusuri layanannya tanpa harus mencari revisi proto yang tepat. Untuk mengintip server staging yang dimiliki orang lain dengan cepat, ini menghilangkan langkah yang paling menjengkelkan.
Di luar klien
Inilah lompatan kategori. Di BloomRPC, panggilan yang di-debug menguap saat Anda menutup jendela. Di Apidog, layanan gRPC berada di dalam proyek: rekan tim menggunakan kembali pengaturan debugging yang Anda simpan alih-alih mengimpor ulang protos dan mengetik ulang metadata, dan ruang kerja yang sama menyimpan pekerjaan REST dan WebSocket Anda, pengujian API gRPC otomatis, mock untuk titik akhir HTTP Anda, dan dokumen yang dapat diterbitkan. Sebagian besar backend gRPC juga melayani REST atau GraphQL di suatu tempat; jika Anda menimbang batas-batas protokol tersebut, kami telah membandingkannya di REST vs GraphQL vs gRPC dan menggali komprominya di gRPC vs REST.
Sekilas BloomRPC vs Apidog
| BloomRPC | Apidog | |
|---|---|---|
| Status | Diarsipkan Januari 2023; README: penggunaan tidak disarankan | Dikembangkan secara aktif |
| Panggilan Unary | Ya | Ya |
| Streaming Server / klien / bidirectional | Parsial, dengan masalah yang diketahui | Semua didukung, gaya sesi dengan linimasa |
| Impor Proto | Berkas .proto lokal | Berkas lokal, URL, refleksi server |
| TLS | Dasar | grpc:// / grpcs:// beralih per permintaan |
| Metadata dan otentikasi | Pengeditan metadata | Metadata ditambah konfigurasi otentikasi |
| Berbagi tim | Tidak ada (hanya lokal) | Panggilan tersimpan dibagikan dalam ruang kerja tim |
| Protokol lain | Hanya gRPC | REST, WebSocket, SSE, GraphQL, gRPC |
| Dokumen, tes, mock | Tidak ada | Platform yang sama, proyek yang sama |
| Harga | Gratis (ditinggalkan) | Paket gratis hingga 4 pengguna |
Migrasi dari BloomRPC
Catatan migrasi yang jujur: tidak ada yang perlu diekspor. BloomRPC tidak menyimpan status portabel yang berarti, yang membuat meninggalkannya menjadi hal yang sepele:
- Kumpulkan berkas .proto Anda. Mereka berada di repo Anda, bukan di BloomRPC. Itulah seluruh "ekspor."
- Impor ke Apidog. Buat proyek, tambahkan protos (atau URL-nya), dan tambahkan direktori dependensi jika protos Anda mengimpor yang lain. Layanan dan metode rpc muncul sebagai layanan dan metode. Atau lewati berkas sama sekali dan gunakan refleksi server terhadap server yang sedang berjalan.
- Atur alamat server dan TLS. Masukkan URL target dan pilih grpc:// atau grpcs://.
- Buat ulang metadata dan autentikasi. Tambahkan kembali header dan token yang Anda tempelkan ke BloomRPC, kali ini disimpan bersama permintaan sehingga Anda mengetiknya sekali saja.
- Simpan dan bagikan. Panggilan yang disimpan menjadi pengaturan debugging bersama tim, yang merupakan hal pertama yang akan Anda sadari bahwa Anda tidak pernah memilikinya.
Pengguna BloomRPC yang aktif seharusnya sudah bisa mengirim panggilan di Apidog dalam sepuluh menit, karena langkah 1 hingga 3 adalah ritual yang sama yang sudah Anda ketahui.
Alternatif BloomRPC lain yang patut diketahui
- grpcurl: curl untuk gRPC. Alat yang tepat untuk skrip shell, pemeriksaan CI, dan perintah satu baris terhadap server yang mendukung refleksi; bukan GUI dan tidak berpura-pura menjadi GUI. Kami membandingkannya secara mendalam di alternatif grpcurl terbaik.
- grpcui: saudara grpcurl yang menyediakan UI web sementara untuk satu server. Baik untuk coba-coba lima menit, tanpa status yang disimpan sesuai desain.
- Kreya: klien desktop khusus untuk gRPC dan REST dengan alur kerja proto yang rapi dan tingkat gratis; yang paling mirip dengan penerus langsung BloomRPC jika Anda secara khusus menginginkan klien mandiri. Lihat apa itu Kreya dan alternatif Kreya terbaik untuk mengetahui batasannya.
- Postman: menambahkan dukungan gRPC pada tahun 2022, jadi jika tim Anda sudah membayarnya, itu berfungsi; harga Postman dan kompromi ruang kerja yang biasa berlaku, dibahas di alternatif Postman terbaik.
- evans: REPL terminal untuk gRPC dengan mode interaktif. Disukai oleh orang-orang yang hidup di tmux; tidak akan berfungsi bagi siapa pun yang menginginkan GUI BloomRPC.
Pola: CLI untuk otomatisasi, GUI serbaguna untuk pekerjaan gRPC yang terisolasi, Apidog ketika gRPC adalah salah satu dari beberapa protokol dan Anda menginginkan panggilan, pengujian, dan dokumen di satu tempat.
Pertanyaan yang Sering Diajukan
Apakah BloomRPC masih dikelola?
Tidak. Repositori diarsipkan pada tanggal 4 Januari 2023, dan README-nya menyatakan bahwa penggunaannya tidak lagi disarankan. Tidak ada pembaruan, perbaikan keamanan, atau rilis yang akan datang. Perbandingan klien gRPC saat ini harus mengecualikannya sebagai pilihan untuk pengaturan baru.
Bisakah saya mengimpor pengaturan BloomRPC saya ke Apidog?
Tidak ada berkas impor karena BloomRPC tidak menyimpan apa pun yang portabel. Migrasi berarti mengimpor ulang berkas .proto dari repo Anda (atau menggunakan refleksi server), lalu mengatur alamat server, skema TLS, dan metadata. Ini adalah pekerjaan sepuluh menit, dan setelah itu konfigurasi disimpan dan dapat dibagikan alih-alih terperangkap di satu mesin.
Apakah Apidog mendukung streaming gRPC?
Ya, keempat jenis panggilan: unary, server streaming, client streaming, dan bidirectional streaming. Panggilan streaming berjalan sebagai sesi langsung di mana Anda mengirim pesan dan melihat linimasa lalu lintas. Untuk penyegaran tentang kapan setiap mode cocok, lihat streaming gRPC.
Bagaimana jika saya hanya membutuhkan panggilan gRPC baris perintah yang cepat?
Gunakan grpcurl. Ini menangani panggilan terprogram dan ad-hoc dengan baik, terutama terhadap server yang mendukung refleksi, dan termasuk dalam CI terlepas dari GUI mana yang Anda pilih. Panduan alternatif grpcurl kami membahas di mana ia tidak lagi mencukupi.
Bisakah saya menguji API gRPC dan REST dalam alat yang sama?
Di Apidog, ya: gRPC, REST, WebSocket, SSE, dan GraphQL hidup dalam satu proyek, sehingga layanan yang mengekspos permukaan gRPC dan REST mendapatkan satu rumah. Panduan kami untuk menguji API gRPC menunjukkan alur kerja dari awal hingga akhir.
Pensiunkan klien yang diarsipkan
BloomRPC menyuruh Anda pergi; satu-satunya pertanyaan adalah ke mana. Arahkan Apidog ke berkas .proto Anda atau server yang mendukung refleksi, lakukan panggilan unary dan streaming pertama Anda, dan simpan di samping sisa pekerjaan API Anda. Unduh Apidog secara gratis; tim beranggotakan 4 orang tidak perlu membayar, dan protos Anda adalah satu-satunya berkas migrasi yang Anda butuhkan.
