ایجاد سرویس GRPC با استفاده از NET Core 6.0 EF برای عملیات CRUD
در ایم مقاله من سعی میکنم توضیحات مختصری در سطح مبتدی برای درک بهتر ارائه کنم.
REST چیست؟
همه ما می دانیم REST (Representational State Transfer) یک سبک معماری است که دستورالعمل هایی را برای طراحی API های وب ارائه می دهد.
از روشهای استاندارد موجود HTTP 1.1 مانند GET، POST، PUT و DELETE برای کار با منابع server-side استفاده میکند. REST API ها از URL های پیش تعریف شده ای را ارائه می دهند که مشتری باید برای اتصال به سرور از آنها استفاده کند.
GRPC به معنای Google Remote Procedure Call است
بنابراین برای ساخت یک برنامه GRPC باید سرویس GRPC ایجاد کنیم و بعداً برای مصرف باید مشتری ایجاد کنیم
در پروژه باید بسته nuget زیر را نصب کنیم.
Grpc.AspNetCore قبلاً به طور پیش فرض هنگام ایجاد پروژه نصب شده است.
یک کلاس جدید "products.proto" ایجاد کنید
برای دسترسی به سرویس gRPC در برنامه مشتری مانند ASP.NET Core، Blazor و غیره، باید بسته Grpc.AspNetCore.Web را در پروژه gRPC نصب کنیم. این بسته پشتیبانی gRPC-Web را برای ASP.NET Core در کنار پشتیبانی gRPC HTTP/2 فراهم می کند.
ساختار محصولات
فایل products.proto حاوی فرمت های پیام زیر است
1) محصول، این یک ساختار داده پیام برای تبادل داده های محصول است
2) ProductRowIdFilter، این یک ساختار پیام برای خواندن رکورد محصول بر اساس ProductRowId است ( واکشی توسط ID)
3) محصولات، این یک ساختار پیام است که برای دریافت مجموعه محصولات استفاده می شود
4) خالی، یک ساختار پیام است که نشان دهنده پاسخ خالی از سرور و داده های خالی برای ارسال از مشتری به سرور است.
برای مشاهده کد سی شارپ از فایل پروتو، فایل پروژه را تغییر دهید
روی فایل products.proto کلیک راست کرده و ویژگی های زیر را بررسی کنید
اکنون پروژه را بسازید، فایل های C# مانند زیر در پوشه obj تولید می شوند
اکنون در پوشه Services یک فایل کلاس جدید اضافه کنید و نام آن را ProductsAppService.cs بگذارید.
در اینجا کد کامل کلاس "ProductsAppService.cs" آمده است
اکنون مرحله نهایی است. کد زیر را در فایل Program.cs جایگذاری کنید تا خطمشیهای AppDbContext و CORS در سرویسها را مطابق شکل زیر ثبت کنید.
اکنون پروژه را بسازید و مطمئن شوید که هیچ خطایی وجود ندارد.
اگر خطایی وجود نداشته باشد، سرویسهای gRPC با موفقیت میزبانی میشوند، همانطور که در شکل زیر نشان داده شده است
خوب , ما با موفقیت سرویس GRPC را ایجاد کردیم.
در مقاله بعدی، نحوه استفاده از سرویس gRPC را در برنامه کلاینت .NET Core Console نشان خواهیم داد.
توجه داشته باشید که این بسته ها برای هر نوع gRPC Client.Install-Package Grpc.Tools قابل اجرا هستند.
Install-Package Grpc.Net.Client
Install-Package Google.Protobuf