ساخت API در Asp.net core با GraphQl و Sqlite

  1. ایجاد پروژه جدید : ابتدا یک پروژه جدید ASP.NET Core Web API ایجاد کنید:
ساخت API در Asp.net core با GraphQl و Sqlite

پس از ایجاد

ساخت API در Asp.net core با GraphQl و Sqlite

یک پوشه جدید با نام Data ایجاد میکنیم که می خواهیم تمام کدهای مربوط به پایگاه داده خود را در آن قرار دهیم.

  • ایجاد مدل Speaker.cs در پوشه Data :

با استفاده از کد زیر یک فایل جدید Speaker.cs در دایرکتوری Data اضافه کنید :

  • پیکر بندی Sqlite :
  • پکیج های زیر از NuGet دریافت و  نصب میکنیم :
  • یک Entity Framework DbContext جدید با نام کلاس ApplicationDbContext.cs در پوشه Data ایجاد میکنیم:
  • پیکر بندی Startup.cs :

در Startup.cs خط کد زیر را به سرویس ها  اضافه میکنیم

  • پیکر بندی EF Migrations :

در  Visual Studio، Tools -> NuGet Package Manager -> Package Manager Console  را انتخاب کنید.

دستورات زیر را جهت Migration و آپدیت دیتابیس در Package Manager Console اجرا کنید

  • اضافه کردن GraphQL :
  • پکیج زیر را از NuGet دریافت نمایید:
  • در مرحله بعد ما نوع ریشه پرس و جو خود ( Query.cs) را در پوشه Data ایجاد می کنیم و resolver  اضافه می کنیم که همه speakers ما را واکشی کند.
  • قبل از اینکه بتوانیم کاری با نوع ریشه پرس و جو خود انجام دهیم، باید GraphQL را راه اندازی کنیم و نوع ریشه پرس و جو خود را ثبت کنیم. کد زیر را  در متد Startup.cs اضافه کنید.
  • در مرحله بعد باید میان افزار GraphQL خود را پیکربندی کنیم تا سرور بداند که چگونه درخواست های GraphQL را اجرا کند. برای این کار  app.UseEndpoints…کد زیر را در  Startup.cs اضافه میکنیم.

حال پروژه را اجرا نمایید و می بایست بعد از ورود به آدرس زیر پروژه  ذیل نمایش داده شود.

ساخت API در Asp.net core با GraphQl و Sqlite

برای بررسی نوع برگشتی فیلد speakers ، روی schema explorer کلیک کنید و روی فیلد  speakers کلیک کنید .
توجه: ممکن است مجبور شوید طرح را دوباره بارگیری کنید، می توانید این کار را با کلیک کردن روی دکمه refresh در گوشه سمت راست بالا انجام دهید.

ساخت API در Asp.net core با GraphQl و Sqlite
  • اضافه کردن Mutation  :

بنابراین، تا کنون نوع ریشه Query را به طرح خود اضافه کرده‌ایم که به ما امکان می‌دهد از speakers پرس و جو کنیم. با این حال، در این مرحله، هیچ راهی برای افزودن یا تغییر داده وجود ندارد. در این بخش قصد داریم تا نوع root Mutation را اضافه کنیم تا speakers جدیدی به پایگاه داده خود اضافه کنیم.

برای Mutation  از الگوی Relay Mutation  استفاده می‌کنیم که معمولاً در GraphQL استفاده می‌شود.

یک جهش از سه جزء تشکیل شده است، Input ، Payload و خود Mutation  

در این مورد ما می خواهیم یک Mutation به نام ایجاد کنیم addSpeaker، طبق قرارداد، جهش ها به عنوان فعل نامگذاری می شوند، ورودی های آنها نامی است که در انتها “Input” ضمیمه شده است، و آنها یک شی است که نام آن با “Payload” اضافه شده است.

بنابراین، برای  addSpeakerجهش خود، دو نوع ایجاد می کنیم AddSpeakerInput و AddSpeakerPayload :

  1.  AddSpeakerInput.csبا کد زیر یک فایل به پروژه خود اضافه کنید :

ورودی و خروجی (بارگذاری بار) هر دو حاوی یک شناسه جهش مشتری هستند که برای تطبیق درخواست ها و پاسخ ها در برخی از چارچوب های مشتری استفاده می شود.

  • سپس ما را اضافه می کنیم  AddSpeakerPayloadکه خروجی جهش GraphQL ما را با افزودن کد زیر نشان می دهد:
  • حالا بیایید نوع جهش واقعی را با addSpeakerجهش خود در آن اضافه کنیم.
  • حال در program.cs باید Mutation نوع جدید را به طرح خود اضافه کنید:
  • تست خروجی  :
  • اکنون باید یک نوع Query به نام Speacker و یک Mutation به نام addSpeaker وجود داشته باشد.
ساخت API در Asp.net core با GraphQl و Sqlite
  • سپس با نوشتن یک جهش GraphQL یک Speaker اضافه کنید.
ساخت API در Asp.net core با GraphQl و Sqlite
  • نام همه Speackers پایگاه داده را جویا شوید.
ساخت API در Asp.net core با GraphQl و Sqlite
ساخت API در Asp.net core با GraphQl و Sqlite
  • سورس کد پروژه در آدرس ذیل قابل دریافت می باشد  :

https://github.com/miladshafiyan/ASPNetCoreGraphQL