grpcurl adalah alat baris perintah pilihan untuk menguji layanan gRPC, tetapi perintah terminal yang banyak menggunakan flag tidak selalu merupakan cara tercepat untuk menjelajahi API, memutar ulang panggilan streaming, atau berbagi permintaan dengan rekan satu tim. Jika Anda menginginkan klien gRPC visual atau alat yang melakukan lebih dari sekadar memanggil satu metode pada satu waktu, panduan ini akan membahas enam alternatif grpcurl, baik GUI maupun CLI, dengan catatan jujur tentang di mana setiap alat cocok.
Apa itu grpcurl dan Batasannya
grpcurl adalah curl untuk gRPC. Anda mengarahkannya ke server, menamai layanan dan metode, meneruskan badan permintaan JSON, dan ia akan mengembalikan respons. Alat ini mendukung refleksi server, sehingga dapat mencantumkan layanan dan metode tanpa Anda menyerahkan file .proto kepadanya, dan ia bekerja dengan TLS, header metadata, serta deskriptor .proto atau protoset saat refleksi dimatikan.
Itu mencakup banyak hal. Untuk pemeriksaan kesehatan cepat atau panggilan berskrip di CI, grpcurl sulit ditandingi. Berikut adalah beberapa hal yang membuatnya canggung:
- Hanya CLI. Setiap panggilan adalah perintah, dan menjelajahi API yang tidak dikenal berarti membaca daftar metode di terminal Anda dan mengetik JSON secara manual.
- Streaming terasa kaku. grpcurl dapat melakukan streaming klien, server, dan dua arah, tetapi Anda memasukkan pesan sebagai aliran JSON di stdin. Tidak ada cara visual untuk melihat aliran server tiba pesan demi pesan.
- Permintaan tidak disimpan. Tidak ada koleksi bawaan, riwayat, atau penggantian lingkungan. Anda mengelola sendiri dengan skrip shell atau file catatan.
- Berbagi berarti berbagi string perintah. Tidak ada ruang kerja bersama, tidak ada contoh tersimpan yang dapat dibuka dan dijalankan oleh rekan satu tim.
Tidak ada yang membuat grpcurl buruk. Itu menjadikannya alat yang sempit. Jika pekerjaan Anda telah berkembang melampaui panggilan berskrip tunggal, salah satu opsi di bawah ini akan lebih cocok.
Alternatif grpcurl sekilas
| Alat | Antarmuka | Dukungan Streaming | Refleksi | Terbaik untuk |
|---|---|---|---|---|
| Apidog | GUI (desktop) | Unary + server, client, dua arah | Ya | Pengujian gRPC visual bersama REST, GraphQL, dan dokumentasi |
| grpcui | UI Web | Unary + streaming | Ya | Antarmuka browser untuk grpcurl, penulis yang sama |
| Postman | GUI (desktop/web) | Unary + streaming | Ya | Tim yang sudah terstandardisasi dengan Postman |
| Kreya | GUI (desktop) | Unary + streaming | Ya | Klien desktop gRPC dan REST yang fokus |
| Evans | CLI Interaktif | Unary + streaming | Ya | Alur kerja terminal bergaya REPL |
| BloomRPC | GUI (desktop) | Unary + streaming | Terbatas | Hanya proyek lama (tidak terpelihara) |
1. Apidog (klien gRPC visual)
Apidog adalah platform API yang menangani REST, GraphQL, WebSocket, SOAP, dan gRPC dalam satu aplikasi desktop, sehingga gRPC berada di samping pekerjaan API Anda yang lain daripada di terminal terpisah. Khusus untuk gRPC, Anda mengimpor file .proto atau terhubung melalui refleksi server, dan Apidog membaca definisi layanan dan metode untuk Anda.
Dari sana Anda mendapatkan pembuat permintaan berbasis formulir. Metode muncul dalam daftar yang dapat Anda klik, pesan permintaan dirender sebagai bidang yang dapat diedit berdasarkan skema proto, dan respons kembali dalam format yang rapi. Keempat jenis panggilan gRPC berfungsi: unary, streaming server, streaming klien, dan streaming dua arah. Untuk streaming server, Anda dapat melihat pesan mendarat di panel respons saat tiba, yang merupakan bagian yang membuat Anda harus menyipitkan mata saat menggunakan grpcurl di stdout.
Lingkup jujur: Apidog adalah klien gRPC GUI, bukan pengganti CLI satu-ke-satu untuk grpcurl. Jika kebutuhan Anda sebenarnya adalah biner yang dapat diskrip yang Anda masukkan ke dalam pipeline shell, grpcurl atau Evans tetap lebih dekat dengan bentuk itu. Di mana Apidog unggul adalah eksplorasi, permintaan yang disimpan, variabel lingkungan untuk titik akhir dan metadata, dan menjaga gRPC dalam ruang kerja yang sama dengan protokol Anda yang lain. Jika Anda membangun layanan di berbagai protokol, alur kerja API multi-protokol akan lebih lancar jika satu alat mencakup semuanya.
Unduh Apidog untuk mengimpor file .proto dan menjalankan panggilan streaming pertama Anda di GUI.
2. grpcui
grpcui berasal dari penulis yang sama dengan grpcurl, fullstorydev, dan ini adalah langkah alami berikutnya jika Anda menyukai grpcurl tetapi menginginkan antarmuka visual. Alat ini menjalankan server web lokal yang memberi Anda formulir browser untuk memanggil metode gRPC. Anda mendapatkan dropdown untuk layanan dan metode, bidang formulir yang dihasilkan untuk pesan permintaan, dan input metadata, semuanya didukung oleh refleksi server atau deskriptor proto.
Ini mendukung streaming dan merefleksikan set fitur gRPC yang sama yang Anda harapkan dari keluarga grpcurl. Kekurangannya adalah grpcui memiliki satu tujuan. Ini adalah penjelajah gRPC dan bukan yang lain, jadi tidak ada pengujian REST, tidak ada koleksi yang disimpan di seluruh sesi, dan tidak ada ruang kerja tim. Jika Anda menginginkan UI browser cepat di atas satu server, ini adalah pilihan yang tepat. Repositori grpcui memiliki detail penyiapan.
3. Postman
Postman menambahkan dukungan gRPC, dan jika tim Anda sudah menggunakan Postman, ada baiknya menggunakannya sebelum menambahkan alat lain. Anda membuat permintaan gRPC, mengarahkannya ke server, memuat .proto (atau menggunakan server yang mendukung refleksi), dan memanggil metode melalui UI Postman. Ini menangani panggilan unary dan streaming, memungkinkan Anda mengatur metadata dan otorisasi, dan menyimpan permintaan dalam koleksi seperti pekerjaan Postman Anda yang lain.

Kekuatannya nyata: koleksi, lingkungan, dan ruang kerja yang sudah dikenal tim Anda. Kendalanya adalah gRPC di Postman secara historis tertinggal dari pengalaman REST-nya dalam hal polesan, dan akun Postman yang lebih besar dilengkapi dengan sinkronisasi cloud dan pertimbangan harga yang ingin dihindari oleh beberapa tim. Jika Anda mempertimbangkan alat yang lebih luas, lihat rangkuman kami tentang alternatif Postman untuk pengujian API. Dokumentasi gRPC Postman sendiri mencakup set fitur saat ini.
4. Kreya
Kreya adalah klien desktop yang berfokus pada gRPC dan REST. Ini membaca file .proto dan mendukung refleksi server, menghasilkan formulir permintaan dari skema Anda, dan menangani semua mode streaming. Ini mengarah pada tata letak berbasis proyek yang bersih di mana Anda mengatur panggilan, mengatur lingkungan, dan menggunakan kembali variabel, yang menjadikannya pilihan yang solid jika Anda menginginkan GUI gRPC khusus tanpa platform penuh di sekitarnya.

Cakupannya lebih ringan daripada platform API penuh, sehingga Anda tidak akan menemukan mocking, pembuatan dokumentasi, atau perkakas desain. Bagi pengembang yang sebagian besar perlu menjelajahi dan menguji layanan gRPC dengan antarmuka yang rapi, fokus tersebut adalah fitur, bukan kekurangan.
5. Evans
Evans adalah klien gRPC interaktif yang berjalan di terminal Anda tetapi berperilaku lebih seperti REPL daripada perintah satu kali. Anda memulai sesi, dan Evans memungkinkan Anda menjelajahi paket, layanan, dan metode, lalu membangun dan mengirim permintaan secara interaktif. Ini mendukung refleksi server dan file .proto, menangani streaming, dan menjaga Anda dalam prompt terpandu alih-alih memaksa Anda mengingat setiap flag.
Jika Anda menginginkan nuansa terminal-native grpcurl tetapi tidak suka mengetik ulang panggilan panjang, Evans adalah jalan tengahnya. Ini masih merupakan alat CLI, jadi tidak ada tampilan streaming visual dan tidak ada ruang kerja bersama, tetapi mode interaktif menghilangkan banyak gesekan grpcurl. Repositori GitHub Evans memiliki instruksi instalasi.
6. BloomRPC (khusus lama)
BloomRPC pernah menjadi GUI gRPC sumber terbuka yang populer, sebuah aplikasi desktop dengan penjelajah metode dan editor permintaan. Aplikasi ini masih disebutkan dalam panduan lama, jadi patut disebutkan, tetapi proyek ini tidak lagi aktif dipelihara. Itu berarti fitur gRPC yang lebih baru, pembaruan dependensi, dan perbaikan kompatibilitas OS tidak lagi diterapkan.
Jangan pilih BloomRPC untuk proyek baru. Jika Anda mewarisi alur kerja yang dibangun di sekitarnya, rencanakan untuk beralih ke salah satu opsi yang terpelihara di atas. Kami mencantumkannya di sini hanya agar Anda tahu apa itu dan mengapa itu bukan lagi rekomendasi saat ini.
Cara Memilih
Cocokkan alat dengan cara Anda benar-benar bekerja:
- Anda menginginkan klien gRPC visual dengan streaming yang dapat Anda tonton dan permintaan yang dapat Anda simpan dan bagikan: Apidog.
- Anda menyukai grpcurl dan menginginkan formulir browser di atasnya: grpcui.
- Tim Anda sudah terstandardisasi dengan Postman: dukungan gRPC Postman.
- Anda menginginkan klien desktop gRPC dan REST yang fokus: Kreya.
- Anda ingin tetap di terminal tetapi tidak ingin lelah dengan flag: Evans.
- Anda memelihara pengaturan lama: ketahuilah bahwa BloomRPC tidak terpelihara dan berencana untuk bermigrasi.
Jika Anda menguji gRPC secara menyeluruh dan menginginkan panduan metode demi metode yang lengkap, panduan kami tentang cara menguji API gRPC secara efisien mencakup alur kerja secara mendalam, dan panduan grpc-curl asli tetap menjadi titik awal yang tepat jika Anda berkomitmen pada baris perintah.
Pertanyaan yang Sering Diajukan
Apakah ada versi GUI dari grpcurl?
grpcui, dari penulis yang sama, adalah GUI langsung terdekat: ia menempatkan formulir browser di atas refleksi dan penanganan proto yang sama yang digunakan grpcurl. Jika Anda menginginkan aplikasi desktop lengkap dengan permintaan yang disimpan, lingkungan, dan streaming yang dapat Anda tonton secara visual, Apidog mencakup gRPC bersama REST dan GraphQL dalam satu klien.
Bisakah saya menguji streaming gRPC tanpa baris perintah?
Ya. Apidog, Postman, Kreya, dan grpcui semuanya mendukung streaming gRPC melalui UI, termasuk streaming server di mana pesan dirender saat tiba. grpcurl dan Evans juga dapat melakukan streaming, tetapi mereka memasukkan dan menampilkan pesan sebagai teks terminal daripada panel visual.
Apakah alat-alat ini membutuhkan file .proto?
Tidak selalu. Setiap alat di sini mendukung refleksi server gRPC, jadi jika server Anda mengekspos refleksi, klien dapat menemukan layanan dan metode sendiri. Ketika refleksi dimatikan, Anda menyediakan file .proto atau protoset yang dikompilasi, dan sebagian besar alat ini menerima keduanya. Untuk gambaran pengujian yang lebih luas, panduan utama pengujian API menjelaskan di mana gRPC cocok di antara REST dan protokol lainnya.
Apakah grpcurl masih layak digunakan?
Tentu saja, untuk pekerjaan yang tepat. grpcurl sangat baik untuk panggilan berskrip, pemeriksaan CI, dan pemanggilan satu kali cepat dari terminal. Alternatif-alternatif di sini menjadi penting ketika Anda melampaui perintah tunggal dan menginginkan eksplorasi visual, koleksi yang disimpan, streaming yang dapat ditonton, atau ruang kerja tim bersama.
Kesimpulan
grpcurl adalah alat yang tajam untuk gRPC baris perintah, dan tidak ada di sini yang menggantikannya untuk panggilan berskrip dan terminal-native. Yang berubah adalah pekerjaannya. Setelah Anda menjelajahi layanan yang tidak dikenal, menonton streaming, atau berbagi permintaan dengan tim, klien visual menghemat waktu nyata. Di antara opsi GUI, Apidog menonjol karena menempatkan gRPC, REST, GraphQL, mocking, dan dokumentasi di satu tempat, sehingga pengujian gRPC Anda tidak terisolasi.
Ingin menguji layanan gRPC tanpa menulis satu flag pun? Coba Apidog secara gratis, impor file .proto Anda atau sambungkan melalui refleksi, dan jalankan panggilan unary serta streaming di GUI dalam hitungan menit.
