Seriál gRPC - Užitečné nástroje
Debugování a testování gRPC služeb je odlišnější než u běžných HTTP služeb. Sám o sobě gRPC neobsahuje žádnou discovery service, která by klientům poskytla přehled o endpointech a kontraktech. Lze ale použít protokol gRPC Server Reflection, který za běhu prozkoumá server a vytvoří dodatečný gRPC endpoint s metadaty o celém gRPC serveru. Různá GUI umí tento endpint přečíst a umožnit pohodlné testování gRPC služby.
Reflection a nástroje v .NET
Svět .NETu podporuje dvě metody vývoje gRPC služeb. Tradiční (označovaná též contract-first) je postavena na práci s Protobuf soubory, které se kompilují do jazyka C#. Druhá metoda (označovaná code-first) je postavena rovnou na psaní C# tříd (místo kompilace si je napíšeme rovnou). Oba tyto přístupy podporují gRPC Server Reflection, je však nutné použít odlišný NuGet balíček a nastavení. Více se dočtete v sekci cheatsheet.
gRPC UI + gRPCurl
gRPC Server Reflection (gSR) zpřístupní nový gRPC endpoint, který obsahuje přehled services, procedures a messages. Protože má protokol gSR jasně danou specifikaci, mohou s tímto endpointem pracovat různé nástroje. Nejrozšířenější nástroj je gRPCurl, který umožňuje zkoumat gRPC server skrze příkazovou řádku. Vedle něj lze také použít gRPC UI, který umožňuje procházet a provolávat gRPC služby ve vizuální podobě. Tento nástroj lze použít také pro účely testování. Nástroj se spouští z příkazové řádky a ve své podstatě vytvoří node server, ke kterému se lze připojit z webového prohlížeče.
Postman
Pro debugování lze používat také známý klient Postman. Podobně jako jiné nástroje používá pro vizualizaci dat formát JSON. Funkčně se nástroje gRPC UI a Postman dobře doplňují. Každý má své vlastní výhody a nedostatky, jejichž spojením dostává vývojář vše, co pro vývoj gRPC služeb potřebuje.