آموزش پیاده سازی gRPC در Asp net Core 5
در این آموزش نحوه پیاده سازی gRPC در زبان Asp.Net Core 5 به صورت کامل همراه با مثال عملی آموزش داده شده . اما قبل از شروع بهتر است کمی با آن آشنا شویم .(در بخش ابتدایی آموزش تمام موارد تئوری شرح داده شده)
gRPC چیست ؟
در حقیقت gRPC یک فریمورک است که به ما این امکان را می دهد تا API هایی از جنس (Remote Procedure Call)
یا RPC بسازیم . این API ها نسبت به سایر رقیب های خودش مثل SOAP و REST بسیار سریع تر ، سبک تر و قابل انعطاف تر است . فریمورک gRPC برای سریالایز کردن داده های خود از پروتکل بافر استفاده می کند . پروتوباف در واقع داده ها را به آرایه یا استریمی از بایت ها تبدیل می کند که در مقایسه با JSON دارای حجم کمتری است .
RPC ها به کلاینت ها این امکان را می دهند که متد درخواستی را درسمت کلاینت نیز بتوانند پیاده سازی کنند . شاید در ابتدا برایتان نامفهوم باشد اما تصمیم دارم در قابل یک مثال آن را توضیح دهم . فرض کنید در حال پیاده سازی یک سیستم فروشگاهی آنلاین هستیم . متدی داریم به نام GetOrder(int id) که یک شناسه سفارش را از کلاینت دریافت می کند و اطلاعات سفارش ثبت شده را مجددا در قالب یه پاسخ به کلاینت ارسال می کند ، اما این متد در کدام قسمت پیاده سازی شده ؟ بله در سمت سرور . حالا RPC به ما این امکان را می دهد که برای استفاده از این متد ، آن را در سمت کلاینت نیز بتوانیم پیاده سازی کنیم یعنی در این حالت ما به ساختار و اجزای همان متد در سمت کلاینت نیز دسترسی داریم در صورتی که در روش REST کلاینت صرفا با یک سری endpoint ها از جنس url در ارتباط است که بر اساس مستندات آن متد در آن آدرس می تواند آن را فراخوانی کند .
این فریمورک از http2 (نسخه بهبود یافته HTTP 1.1 است که از یک ارتباط ، برای چندین درخواست می تواند استفاده کند ، همچنین شامل مزایای دیگری نیز هست که در مقاله ای جداگانه آن را شرح خواهم داد) به عنوان پروتکل ارتباطی استفاده می نماید و همچنین از Streaming های مختلفی مانند Server Streaming ، Client Streaming و Bidirectional Streaming نیز پشتیبانی می کند .
تمام متد های ما (API هایمان برای ارائه به کلاینت) درون یک فایل با پسوند .proto قرار می گیرد . درون هر فایل .proto می توانیم یک یا چند message تعریف کنیم که ورودی و خروجی های هر متد در آن مشخص می گردد و می توانیم یک سرویس تعریف کنیم که تعریف اولیه یا امضا هر متد درون آن صورت می گیرد .
Message ها را می توانید همان DTOs ها در سی شارپ و service ها را نیز همان اینترفیس ها در نظر بگیرید . اگر بخواهم message ها و service ها را بیشتر توضیح دهم ترجیح می دهم در قالب یک مثال آن را بازگو کنم . فرض کنید متدی داریم به نام SUM(int a ,int b) که دو عدد از ورودی دریافت می کند و در نهایت یک عدد به عنوان جمع آنها و خروجی برمی گرداند . ورودی های این متد و نیز خروجی آن می تواند در قالب message ها تعریف شود . به کد های زیر دقت کنید :
message SumRequest{
int64 first_number =1;
int64 second_number =2;
}
message SumResponse{
int64 result =1;
}
SumRequest ورود های متد ما هستند که دو عدد از نوع عددی صحیح دریافت می کنند و SumResponse نیز خروجی متد ماست که از نوع عددی صحیح تحت عنوان result ارجاع می دهد . در این دوره آموزشی تمام این موارد هم به صورت تئوری و هم به صورت عملی و در قالب یک مثال کاربردی برای شما عزیزان آموزش داده شده است .
سرفصل دوره آموزشی پیاده سازی gRPC در Asp.Net Core 5 به شرح زیر است :
فصل اول :
- مقدمه ای بر gRPC : در این قسمت با تمام اجزا gRPC آشنا می شوید . message ها Service ها ، فایل های .proto ، enum ها ، انواع DataType ها در پروتوباف ، موارد استفاده از gRPC و ...
- پیاده سازی gRPC در یک پروژه Asp.net Core 5 به همراه مثال عملی .
دانلود قسمت های دوره
از تاریخ 1401/01/01 تمام محتواهای آموزشی غیر رایگان آکادمی استادباش فقط به فقط از طریق نرم افزار SpotPlayer قابل دسترس شما عزیزان می باشد، بنابراین ابتدا نرم افزار را از این لینک دانلود نمایید و از طریق شماره تماس پشتیبانی دوره در پنل سمت چپ ، با ما در ارتباط باشید.
تیم پشتیبانی آکادمی استادباش