gRPC রিকোয়েস্ট বিল্ডার
একটি .proto ফাইল পেস্ট করুন, সার্ভিস ও মেথড বেছে নিন, এবং TLS, টাইমআউট ও Windows/PowerShell সাপোর্টসহ সঠিক, প্যাকেজ-কোয়ালিফাইড grpcurl কমান্ড পান।
🔒 এই টুলটি সম্পূর্ণভাবে আপনার ব্রাউজারে চলে। আপনার ফাইল কখনও সার্ভারে আপলোড করা হয় না।
ব্রাউজার টুল
gRPC Request Builder
ব্রাউজার সীমাবদ্ধতা: ব্রাউজার রॉ gRPC (HTTP/2 ট্রেইলার-ভিত্তিক) কানেকশন খুলতে পারে না, তাই এই টুল সরাসরি আপনার সার্ভার কল করতে পারে না। এর বদলে এটি আপনার এন্ডপয়েন্ট, proto এবং রিকোয়েস্ট থেকে একটি সঠিক, সঙ্গে সঙ্গে চালানোর মতো grpcurl কমান্ড তৈরি করে - প্রকৃত কল পাঠাতে এটি টার্মিনালে কপি করুন।
—
মেটাডেটা (হেডার)
উন্নত অপশন (TLS সার্টিফিকেট, টাইমআউট, মেসেজ সাইজ, আউটপুট ফরম্যাট)
যেভাবে এটি কাজ করে
- আপনার .proto ফাইল পেস্ট করুন - টুলটি লোকালি এটি পার্স করে সার্ভিস, মেথড এবং প্রতিটি ইউনারি নাকি স্ট্রিমিং তা খুঁজে বের করে।
- ড্রপডাউন থেকে একটি সার্ভিস ও মেথড বেছে নিন, অথবা পার্সিংয়ে কিছু না পাওয়া গেলে সম্পূর্ণ-যোগ্য সিম্বল নিজে টাইপ করুন।
- রিকোয়েস্ট মেসেজ JSON আকারে পূরণ করুন এবং প্রয়োজনে মেটাডেটা হেডার যোগ করুন (যেমন একটি auth টোকেন)।
- কানেকশন সিকিউরিটি বেছে নিন - plaintext, ভেরিফিকেশন ছাড়া TLS, অথবা ভেরিফায়েড TLS - এবং একটি স্কিমা সোর্স নির্বাচন করুন: আপনার লোকাল .proto ফাইল (রিফ্লেকশন লাগবে না) অথবা সার্ভার রিফ্লেকশন।
- mutual TLS সার্টিফিকেট, connect/max-time ডেডলাইন, সর্বোচ্চ মেসেজ সাইজ, অথবা JSON-এর বদলে protobuf টেক্সট আউটপুট দরকার হলে "Advanced options" খুলুন।
- যে শেলে কমান্ডটি চালাবেন তা বেছে নিন - macOS/Linux, PowerShell, অথবা cmd.exe - যাতে কোটিং সেই শেলের সাথে ঠিকভাবে মিলে যায়।
- জেনারেট হওয়া grpcurl কমান্ড (বা স্ক্রিপ্ট) কপি বা ডাউনলোড করুন এবং প্রকৃত রিকোয়েস্ট পাঠাতে টার্মিনালে চালান।
FAQ
এই টুলটি কী কাজে সাহায্য করে?
এটি একটি .proto ফাইল পার্স করে আপনার সার্ভিস ও মেথড খুঁজে বের করে, রিকোয়েস্ট মেসেজ, মেটাডেটা, TLS ও টাইমআউট সেটিংস তৈরি করতে দেয়, এবং একটি সঠিক, প্যাকেজ-কোয়ালিফাইড grpcurl কমান্ড জেনারেট করে যা চালিয়ে আপনি প্রকৃতপক্ষে কল করতে পারবেন।
এটি সরাসরি আমার gRPC সার্ভার কল করতে পারে না কেন?
ব্রাউজার রॉ gRPC কানেকশন খুলতে পারে না - gRPC এমন HTTP/2 ট্রেইলার ও ফ্রেমিংয়ের উপর নির্ভর করে যা শুধু একটি নেটিভ ক্লায়েন্ট (বা gRPC-Web প্রক্সি) বলতে পারে। সঠিক grpcurl কমান্ড জেনারেট করাই একটি ব্রাউজার টুল থেকে আপনাকে কার্যকর একটি কল দেওয়ার সৎ ও সঠিক উপায়।
এটি কি আমার proto বা ডেটা কোথাও পাঠায়?
না। পার্সিং, রিকোয়েস্ট তৈরি এবং কমান্ড জেনারেশন সবকিছুই আপনার ব্রাউজারে লোকালি চলে - কিছুই আপলোড হয় না।
আমার proto পার্স করা না গেলে কী হবে?
পার্সারটি একটি একক, স্বনির্ভর .proto ফাইল হ্যান্ডেল করে (একাধিক ফাইল জুড়ে ইম্পোর্ট নয়)। কোনো সার্ভিস ডেফিনিশন না পেলে, টুলটি একটি ম্যানুয়াল মোডে চলে যায় যেখানে আপনি নিজেই সম্পূর্ণ-যোগ্য Service/Method সিম্বল টাইপ করেন।
grpcurl কী, এবং এটি কি আলাদাভাবে ইনস্টল করতে হবে?
grpcurl একটি প্রকৃত কমান্ড-লাইন টুল - অনেকটা curl-এর মতো, কিন্তু gRPC-এর জন্য। এই পেজটি শুধু কমান্ড জেনারেট করে; আপনার সার্ভারের বিপরীতে এটি প্রকৃতপক্ষে চালাতে আপনাকে grpcurl ইনস্টল করতে হবে (যেমন brew বা go install দিয়ে)।
এটি ব্যবহার করতে আমার gRPC সার্ভারে সার্ভার রিফ্লেকশন চালু থাকতে হবে কি?
ডিফল্টভাবে না। স্কিমা সোর্স হিসেবে "Local .proto file" নির্বাচিত থাকলে, জেনারেট হওয়া কমান্ড -proto ও -import-path এর মাধ্যমে আপনার proto grpcurl-এ পাস করে, তাই এটি কখনো সার্ভার রিফ্লেকশনের উপর নির্ভর করে না। আপনার সার্ভার রিফ্লেকশন সাপোর্ট করলে এবং ফাইল ধাপ এড়াতে চাইলে, স্কিমা সোর্স "Server reflection"-এ পরিবর্তন করুন, তখন কমান্ডটি -use-reflection ব্যবহার করবে।
এটি কি mutual TLS (ক্লায়েন্ট সার্টিফিকেট) সাপোর্ট করে?
হ্যাঁ। CA সার্টিফিকেট, ক্লায়েন্ট সার্টিফিকেট ও ক্লায়েন্ট কী ফাইল পাথ সেট করতে "Advanced options" খুলুন - টুলটি -cacert, -cert, বা -key তখনই যোগ করে যখন সেগুলো আপনার বাছাই করা কানেকশন সিকিউরিটির সাথে প্রযোজ্য (যেমন, -insecure কানেকশনের ক্ষেত্রে -cacert বাদ দেওয়া হয়, কারণ grpcurl সেখানে এটি উপেক্ষা করে)।
আমি কি টাইমআউট বা কানেকশন ডেডলাইন সেট করতে পারি?
হ্যাঁ - "Advanced options"-এ connect timeout (-connect-timeout) এবং সর্বোচ্চ মোট কল সময় (-max-time) এর ফিল্ড আছে, সাথে একটি সর্বোচ্চ রেসপন্স মেসেজ সাইজ (-max-msg-sz), সবগুলোই ঐচ্ছিক।
জেনারেট হওয়া কমান্ড কি Windows-এ কাজ করে?
হ্যাঁ। macOS/Linux শেল কোটিং, PowerShell, এবং cmd.exe কোটিংয়ের মধ্যে পরিবর্তন করতে "Command syntax for" সিলেক্টর ব্যবহার করুন - প্রতিটি সেই শেলের প্রকৃত এস্কেপিং নিয়ম অনুসরণ করে, এবং ডাউনলোডযোগ্য স্ক্রিপ্টও তার সাথে মেলে (.sh, .ps1, বা .bat)।
আমরা কীভাবে তুলনায় এগিয়ে
| ফিচার | Online Tool Store | EaseCloud gRPC Client | Newtum API Navigator gRPC Client |
|---|---|---|---|
| একটি সঠিক, প্যাকেজ-কোয়ালিফাইড grpcurl সিম্বল জেনারেট করে (package.Service/Method) | হ্যাঁ | না - প্যাকেজ প্রিফিক্স বাদ দেয় | প্রযোজ্য নয় - এর বদলে লাইভ পাঠায় |
| পেস্ট করা .proto পার্স করে স্বয়ংক্রিয়ভাবে সার্ভিস ও মেথড তালিকাভুক্ত করে | হ্যাঁ | শুধু ম্যানুয়াল এন্ট্রি | সার্ভার রিফ্লেকশন প্রয়োজন |
| proto থেকে ইউনারি নাকি স্ট্রিমিং RPC টাইপ শনাক্ত করে | হ্যাঁ | না | কানেক্ট করার পরে দেখায় |
| শেল-সেফ এস্কেপিং সহ মেটাডেটা হেডার বিল্ডার | হ্যাঁ | না | হ্যাঁ |
| লোকাল proto ব্যবহারের সময় কমান্ড প্রকৃতপক্ষে রিফ্লেকশন এড়িয়ে যায় (-proto/-import-path যোগ করে, শুধু দাবি নয়) | হ্যাঁ | না - কোনো -proto ফ্ল্যাগ জেনারেট হয় না, তাই নীরবে রিফ্লেকশনে ফলব্যাক করে | প্রযোজ্য নয় - সবসময় লাইভ |
| Mutual TLS সাপোর্ট (-cacert / -cert / -key) | হ্যাঁ | না | না |
| Connect timeout, max time, এবং সর্বোচ্চ মেসেজ সাইজ ফ্ল্যাগ | হ্যাঁ | না | প্রযোজ্য নয় - এর বদলে লাইভ কানেকশনে কনফিগার করা হয় |
| bash/zsh, PowerShell, এবং cmd.exe-এর জন্য সঠিক কমান্ড কোটিং | হ্যাঁ | না - শুধু একটি শেল স্টাইল | প্রযোজ্য নয় - কোনো কমান্ড আউটপুট নেই |
| কোনো সাইনআপ লাগে না, লাইভ নেটওয়ার্ক কল লাগে না | হ্যাঁ | হ্যাঁ | না - একটি রিচেবল সার্ভার প্রয়োজন |
যেহেতু একটি ব্রাউজার রॉ gRPC বলতে পারে না, তাই সৎ ও কার্যকর আউটপুট হলো একটি সঠিক কমান্ড - এবং প্যাকেজ-কোয়ালিফাইড সিম্বল, রিফ্লেকশন-মুক্ত -proto ফ্ল্যাগ, এবং শেলের নিজস্ব কোটিং নিয়ম ঠিকভাবে পাওয়াটাই সেই জায়গা যেখানে একটি সরল ইমপ্লিমেন্টেশন ব্যর্থ হয়।