=

Reflection

Debugování a testování gRPC služeb je obtíž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 volitelné rozšíření 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 mohou tento endpint přečíst a umožnit pohodlné testování gRPC služby.

Reflection ve světě .NETu

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 Server Reflection (gSR) zpřístupní nový gRPC endpoint, který obsahuje přehled services, procedures a messages. Protože má 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.

image-20220118105408458

Bez reflection je práce s gRPC službami komplikovanější. Vývojář musí mít k dispozici veškeré proto soubory, které lze podstračit různým GUI nástrojům. Ty jsou pak schopny komunikovat s gRPC serverem na základě těchto proto souborů. Nesporná výhoda reflection ale spočívá v reálné reflexi aktuálně nasazených služeb na serveru.

Hlavní nabídka

🏚️ Úvod do gRPC
✍️ Historie a .NET
✍️ Komunikace
✍️ Protobuf
✍️ Návrh služeb
✍️ Reflection
✍️ Cheatsheet
🧑‍🎓 Školení

Miroslav Holec

Miroslav Holec

Jsem nezávislý konzultant a lektor na volné noze se zaměřením na vývojářské technologie Microsoftu. Školím ve firmách po celé České republice a na Slovensku.

kontakt zde

Dotazy, poptávky a objednávky

mirek@miroslavholec.cz
Loading