$lang['tuto'] = "سبق"; ?>$lang['tuto'] = "سبق"; ?>$lang['tuto'] = "سبق"; ?> گراف کیو ایل میں آبجیکٹ کی اقسام

گراف کیو ایل میں آبجیکٹ کی اقسام پر کلیدی ہدایت کو لاگو کرنے کے لیے ہاٹ چاکلیٹ کا استعمال کیسے کریں

Key Directive

ہاٹ چاکلیٹ میں کلیدی ہدایت کے ساتھ آبجیکٹ کی اقسام کو بہتر بنانا

HotChocolate کے ساتھ GraphQL استعمال کرتے وقت، آپ کو اپنے آبجیکٹ کی اقسام کو ہدایات کے ساتھ بڑھانے کی ضرورت پڑ سکتی ہے، جیسے کہ ہدایت، اپالو فیڈریشن کے ساتھ مطابقت کو یقینی بنانے کے لیے۔ یہ فیڈریٹڈ اسکیموں کے لیے خاص طور پر اہم ہے، جس میں کلیدیں کئی سروسز میں موجود اداروں کی شناخت کرتی ہیں۔ ان ہدایات کے ساتھ اپنے آبجیکٹ کی اقسام کو مناسب طریقے سے ڈیزائن کرنے کا طریقہ سمجھنا بہت ضروری ہے۔

یہ مضمون بتائے گا کہ کس طرح استعمال کرنا ہے۔ کا استعمال کرتے ہوئے آبجیکٹ کی اقسام کو سجانے کے لئے ہدایت ہم ایک سادہ بنانے کے لیے C# کوڈ کا استعمال کرنے والی مخصوص مثالوں کو بھی دیکھیں گے۔ کلاس اور تیار کردہ گراف کیو ایل اسکیما کو کیسے تبدیل کیا جائے۔ اس فنکشنلٹی کو بنانے کے لیے اصل اقدامات پر زور دیا جائے گا۔

گراف کیو ایل آبجیکٹ کی قسمیں بنانے کے لیے ہاٹ چاکلیٹ کا استعمال کرتے وقت، ہدایت کا اطلاق فوری طور پر توقع کے مطابق نہیں ہو سکتا۔ اس کے بجائے، اسکیما ایک سادہ قسم کا ڈھانچہ تیار کر سکتا ہے جس میں فیڈریشن کے لیے درکار اہم خصوصیات کا فقدان ہے۔ ہم اس کو حل کرنے کے طریقہ پر جائیں گے اور آپ کے اسکیما کو توقع کے مطابق انجام دینے کے لیے تیار کریں گے۔

ہم کنفیگریشن کے اہم کاموں کا بھی احاطہ کریں گے، جیسے کہ آپ کے گراف کیو ایل سرور سیٹ اپ میں ترمیم کرنا اور صحیح استعمال کرنا اور پیکجز مناسب ترتیب کے ساتھ، آپ آسانی سے ہدایات کا اطلاق کر سکتے ہیں اور اپنی خدمات کے لیے مناسب سکیما فیڈریشن کو یقینی بنا سکتے ہیں۔

حکم استعمال کی مثال
ہاٹ چاکلیٹ میں، یہ کمانڈ استعمال کرکے آبجیکٹ کی قسم کو سجاتی ہے۔ ہدایت یہ اس بات کی وضاحت کرتا ہے کہ اپولو فیڈریشن سے نمٹنے کے دوران کون سا فیلڈ ٹائپ کے منفرد شناخت کنندہ کے طور پر کام کرے گا۔
جب کسی طریقہ پر لاگو ہوتا ہے، تو یہ وصف HotChocolate کو ہدایت دیتا ہے کہ وہ اس طریقہ کو فیڈریٹڈ اقسام کے حل کے طور پر استعمال کرے۔ یہ بیرونی حوالوں کے ذریعے وفاقی خدمات میں متعلقہ ڈیٹا کی بازیافت کی اجازت دیتا ہے۔
یہ کمانڈ ہاٹ چاکلیٹ گراف کیو ایل سرور میں اپولو فیڈریشن سپورٹ کو ترتیب دیتی ہے۔ فیڈریٹڈ اسکیما کی خصوصیات کو فعال کرنا ضروری ہے، جیسے ہدایت
کسی سروس کو رجسٹر کرتا ہے، جیسے ، گراف کیو ایل ڈی آئی کنٹینر میں۔ یہ آپ کو براہ راست گراف کیو ایل ریزولور میں خدمات انجیکشن کرنے کی اجازت دیتا ہے۔
SDL ماڈل میں، یہ ہدایت فیڈریشن کے لیے اہم کلیدی فیلڈ کی وضاحت کرتی ہے۔ کراس سروس ہستی ریزولوشن کو فعال کرنے کے لیے، آبجیکٹ کی اقسام میں ہونا ضروری ہے۔ ہدایت
غیر مطابقت پذیر طور پر ایک گراف کیو ایل استفسار کو انجام دیتا ہے، جو عام طور پر یونٹ ٹیسٹوں میں استعمال ہوتا ہے اس بات کو یقینی بنانے کے لیے کہ اسکیما اور ہدایات، جیسے ، مناسب طریقے سے لاگو کیا جاتا ہے.
یہ خصوصیت GraphQL ریزولور میتھڈ آرگیومنٹس میں ریپوزٹریز یا سروسز جیسی انحصار کو انجیکشن کرنے کے لیے استعمال کی جاتی ہے، HotChocolate میں سروس کی بازیافت کو فعال کرتی ہے۔
XUnit کی یونٹ ٹیسٹنگ کمانڈ کا استعمال اس بات کو یقینی بنانے کے لیے کیا جاتا ہے کہ کچھ تار یا ہدایات، جیسے ہدایت، ٹیسٹ کے دوران تیار کردہ گراف کیو ایل اسکیما میں شامل ہیں۔

ہاٹ چاکلیٹ میں کلیدی ہدایات کے کردار کو سمجھنا

پہلا اسکرپٹ بتاتا ہے کہ کس طرح لاگو کیا جائے۔ سی # میں ہاٹ چاکلیٹ کا استعمال کرنے کی ہدایت۔ یہ اسکرپٹ اس بات کی ضمانت دیتا ہے کہ تخلیق کردہ گراف کیو ایل اسکیما پر مشتمل ہے۔ @key اپالو فیڈریشن کے ساتھ فیڈریشن کے لیے ہدایت۔ اسکرپٹ ایک بنانے سے شروع ہوتا ہے۔ کلاس اور تفویض اور [ID] اس کے کھیتوں کی صفات۔ یہ خصوصیات ہاٹ چاکلیٹ کو نشان زد کرنے کے لیے مطلع کرنے کے لیے اہم ہیں۔ ہستی کے منفرد شناخت کنندہ کے طور پر فیلڈ۔ یہ ایک فیڈریٹڈ گراف کیو ایل سروس بناتے وقت بہت اہم ہے جس میں اداروں کو کئی سروسز میں شیئر کیا جا سکتا ہے۔ اس فیلڈ کو نشان زد کرنے سے GraphQL سروس کو وفاق کے سوالات میں ہستی کو حل کرنے کی اجازت ملتی ہے۔

دی فنکشن بھی اسکرپٹ کا ایک لازمی جزو ہے۔ یہ جامد فنکشن ہاٹ چاکلیٹ کو ہستی کو حل کرنے کے قابل بناتا ہے۔ ایک ذخیرہ میں اعتراض. دی گراف کیو ایل سرور کے ساتھ رجسٹرڈ ہے، اور حاصل کریں۔ طریقہ اس کے ذریعہ والدین کو بازیافت کرتا ہے۔ . بوٹسٹریپ کوڈ میں، ہدایات رجسٹر کرتا ہے آبجیکٹ، جو گراف کیو ایل کے سوالات کو انجام دینے کے لیے استعمال کیا جاتا ہے۔ RegisterService GraphQL حل کرنے والوں میں ParentRepository جیسے انحصار کو انجیکشن کرنے کی اجازت دیتی ہے۔ یہ ڈیزائن خدشات کی واضح علیحدگی کو محفوظ رکھتے ہوئے ڈیٹا کی بازیافت کو آسان بناتا ہے۔

دوسری مثال اسکیما فرسٹ اپروچ لیتی ہے، جس میں گراف کیو ایل ایس ڈی ایل (اسکیما ڈیفینیشن لینگویج) کا استعمال سکیما کے اندر ہدایت. یہ حل خاص طور پر ان ٹیموں کے لیے موثر ہے جو پہلے ہی GraphQL کے SDL نحو سے واقف ہیں۔ اس مثال میں، @key پر ہدایت کا اطلاق ہوتا ہے۔ قسم، واضح طور پر اشارہ کرتا ہے فیلڈ کو بطور منفرد شناخت کنندہ۔ سکیما فرسٹ کا استعمال ڈویلپرز کو اس بات پر زیادہ کنٹرول حاصل کرنے کی اجازت دیتا ہے کہ گراف کیو ایل سکیما کیسے بنایا جاتا ہے اور اسے C# کوڈ میں جانے کے بغیر اس میں ترمیم کر سکتا ہے، یہ بڑی ٹیموں کے لیے زیادہ لچکدار آپشن بناتا ہے۔

آخر میں، یونٹ ٹیسٹنگ جزو اس بات کی توثیق کرتا ہے کہ کوڈ مطلوبہ کارکردگی کا مظاہرہ کرتا ہے۔ xUnit ٹیسٹنگ فریم ورک کا استعمال کرتے ہوئے، Assert.The پر مشتمل ہے۔ کمانڈ اس بات کو یقینی بناتا ہے کہ نتیجے میں اسکیما شامل ہے۔ ہدایت یہ ٹیسٹ اسکیما کی موجودگی کی تصدیق کرتا ہے۔ @key ہدایت، اس بات کی تصدیق کرتے ہوئے کہ سروس فیڈریشن کے لیے مناسب طریقے سے ترتیب دی گئی ہے۔ یونٹ ٹیسٹنگ اس بات کو یقینی بنانے کے لیے ایک بہترین عمل ہے کہ آپ کے گراف کیو ایل اسکیما یا حل کرنے والے طریقوں میں تبدیلیاں فعالیت میں خلل نہیں ڈالتی ہیں، خاص طور پر ایک وفاقی نظام میں جہاں متعدد خدمات کو ایک ساتھ بغیر کسی رکاوٹ کے کام کرنا چاہیے۔

GraphQL آبجیکٹ کی اقسام کے لیے HotChocolate میں کلیدی ہدایت کو نافذ کرنا

یہ حل بیک اینڈ سے گراف کیو ایل اسکیما میں ترمیم کرنے کے لیے C#، HotChocolate، اور Apollo Federation کا استعمال کرتا ہے۔

using HotChocolate;
using HotChocolate.Types;
using HotChocolate.Types.Relay;
using Microsoft.Extensions.DependencyInjection;
public class Parent
{
    public Parent(string id, string name)
    {
        Id = id;
        Name = name;
    }
    [Key]
    [ID]
    public string Id { get; }
    public string Name { get; }
    [ReferenceResolver]
    public static Parent? Get(ParentRepository repository, string id)
    {
        return repository.GetParent(id);
    }
}
public class Query
{
    public Parent GetParent(string id, [Service] ParentRepository repository)
    {
        return repository.GetParent(id);
    }
}
public void ConfigureServices(IServiceCollection services)
{
    services.AddGraphQLServer()
        .AddQueryType<Query>()
        .RegisterService<ParentRepository>()
        .AddApolloFederation();
}

@key ڈائریکٹیو کو لاگو کرنے کے لیے گراف کیو ایل سکیما کا پہلا طریقہ استعمال کرنا

یہ حل GraphQL SDL اور HotChocolate کے ساتھ ایک @key ہدایت کے ساتھ اپنی مرضی کے مطابق اسکیما بنانے کے لیے اسکیما فرسٹ اپروچ کا استعمال کرتا ہے۔

type Parent @key(fields: "id") {
    id: ID!
    name: String!
}
extend type Query {
    parent(id: ID!): Parent
}
extend type Mutation {
    createParent(id: ID!, name: String!): Parent
}
directive @key(fields: String!) on OBJECT | INTERFACE

schema {
    query: Query
    mutation: Mutation
}

یونٹ ٹیسٹنگ HotChocolate GraphQL کے ساتھ @key Directive

یہاں ایک C# یونٹ ٹیسٹ ہے جو xUnit فریم ورک کا استعمال اس بات کو یقینی بنانے کے لیے کرتا ہے کہ HotChocolate سرور GraphQL اسکیما میں @key ہدایت کو صحیح طریقے سے لاگو کرتا ہے۔

using Xunit;
using HotChocolate.Execution;
using Microsoft.Extensions.DependencyInjection;
public class ParentTests
{
    [Fact]
    public async Task ParentSchema_ContainsKeyDirective()
    {
        var serviceCollection = new ServiceCollection();
        serviceCollection.AddGraphQLServer()
            .AddQueryType<Query>()
            .AddApolloFederation();
        var serviceProvider = serviceCollection.BuildServiceProvider();
        var schema = await serviceProvider.GetRequiredService<ISchemaAsync>().ExecuteAsync();
        Assert.Contains("@key(fields: \"id\")", schema.ToString());
    }
}

اپولو فیڈریشن اور ہاٹ چاکلیٹ کے ساتھ گراف کیو ایل کو بڑھانا

فیڈریٹڈ ماحول میں ہاٹ چاکلیٹ کے ساتھ گراف کیو ایل کا استعمال کرنے کے لیے اچھی ساخت والی اسکیما سلائی کی ضرورت ہوتی ہے۔ اپالو فیڈریشن ڈویلپرز کو یکساں انٹرفیس کو برقرار رکھتے ہوئے متعدد خدمات میں اسکیموں کو تقسیم کرنے کے قابل بناتا ہے۔ کا استعمال کرتے ہوئے HotChocolate کے ساتھ ہدایت، آپ وضاحت کر سکتے ہیں کہ کس طرح GraphQL اداروں کو متعدد سروسز میں حل کیا جاتا ہے۔ یہ آپ کے API کو زیادہ ماڈیولر اور توسیع پذیر بناتا ہے، جو خاص طور پر بڑے، تقسیم شدہ نظاموں میں فائدہ مند ہے جہاں متعدد ٹیمیں GraphQL اسکیما کے مختلف پہلوؤں کو کنٹرول کرتی ہیں۔

ایک عام فیڈریٹڈ اسکیما میں، ادارے جیسے بہت ساری خدمات میں موجود ہو سکتا ہے۔ اپولو فیڈریشن استعمال کرتی ہے۔ مخصوص فیلڈ کی بنیاد پر کسی ہستی کی منفرد شناخت کرنے کی ہدایت، جیسے . اپالو فیڈریشن کے لیے ہاٹ چاکلیٹ کا تعاون اس بات کو یقینی بناتا ہے کہ آپ کی سروس آسانی سے ایک بڑے انفراسٹرکچر میں ضم ہو جائے۔ چابیاں ترتیب دینے کے علاوہ، آپ فیڈریشن کی ہدایات جیسے کہ استعمال کر سکتے ہیں۔ @توسیع کرتا ہے۔ یا آپ کے گراف کیو ایل سیٹ اپ کے لیے زیادہ لچک فراہم کرتے ہوئے، متعدد مائیکرو سروسز پر منتشر ڈیٹا فیلڈز کا نظم کرنے کے لیے۔

ہاٹ چاکلیٹ کے استعمال کے دوران ایک اور اہم عنصر کارکردگی کی اصلاح ہے۔ گراف کیو ایل APIs کے ساتھ ڈیٹا کو اوور فیچ کرنا ایک عام مسئلہ ہے، خاص طور پر وفاقی سیاق و سباق میں۔ درست حل کرنے والوں کا استعمال کرنا، جیسے پہلے کی مثالوں میں بیان کیا گیا ہے، اس بات کی ضمانت دیتا ہے کہ آپ کا API ضرورت سے زیادہ تلاش کے بغیر صرف مطلوبہ ڈیٹا فراہم کرتا ہے۔ مزید برآں، HotChocolate ایڈوانسڈ استفسار بیچنگ اور کیشنگ الگورتھم کو سپورٹ کرتا ہے، جو فیڈریٹڈ اسکیما میں API کے جواب کی رفتار اور کارکردگی کو بڑھا سکتا ہے۔

  1. اپالو فیڈریشن گراف کیو ایل کی ترقی کو کیسے فائدہ پہنچاتی ہے؟
  2. Apollo Federation آپ کو GraphQL اسکیموں کو کئی سروسز میں تقسیم کرنے کی اجازت دیتا ہے، ہر ایک اسکیما کے ایک حصے کے لیے جوابدہ ہے، لیکن پھر بھی ایک مستقل API کو برقرار رکھتا ہے۔
  3. کیا ہے ہاٹ چاکلیٹ میں استعمال ہونے والی ہدایت؟
  4. دی ڈائرکٹیو کسی ہستی کے لیے ایک منفرد شناخت کنندہ بناتا ہے، جو اسے کئی گراف کیو ایل سروسز میں حل کرنے کے قابل بناتا ہے۔
  5. کیا میں استعمال کر سکتا ہوں؟ اور ہاٹ چاکلیٹ میں ایک ساتھ صفات؟
  6. جی ہاں، جائیداد وفاق کے لیے استعمال ہوتی ہے، اور اسکیما کے اندر ایک شناخت کنندہ کے طور پر فیلڈ کی وضاحت کرتا ہے۔
  7. کیا کرتا ہے ہاٹ چاکلیٹ میں کرتے ہیں؟
  8. آپ کے حل کرنے والوں کے اندر انحصار انجیکشن کو فعال کرتے ہوئے، گراف کیو ایل سرور کے ساتھ ایک خدمت، جیسا کہ ذخیرہ خانہ، رجسٹر کرتا ہے۔
  9. آپ ہاٹ چاکلیٹ کے ساتھ گراف کیو ایل اسکیموں کی جانچ کیسے کرتے ہیں؟
  10. ہاٹ چاکلیٹ اسکیما کو استعمال کرکے اور اس طرح کی ہدایات کی جانچ کرکے یونٹ ٹیسٹ کا استعمال کرتے ہوئے اسکیما ٹیسٹنگ کو قابل بناتا ہے۔ نتیجے کے نتیجے میں.

ہاٹ چاکلیٹ کا استعمال ہدایت اس بات کو یقینی بناتی ہے کہ آپ کا فیڈریشن ہے۔ اپالو فیڈریشن کے لیے مناسب طریقے سے ترتیب دیا گیا ہے۔ یہ نقطہ نظر آبجیکٹ کی قسم کے انتظام کو بہتر بناتا ہے اور کراس سروس ہستی کے حل کی اجازت دیتا ہے۔

اپنے گراف کیو ایل سرور کو ہاٹ چاکلیٹ کے ساتھ ترتیب دینا اور اس طرح کی ہدایات کا استعمال کرنا بڑے، تقسیم شدہ APIs کی تعمیر کو آسان بناتا ہے۔ یہ حکمت عملی آپ کو اس قابل بناتی ہے کہ آپ اپنی خدمات کو زیادہ آسانی سے بڑھا سکیں اور مسلسل، اعلیٰ کارکردگی والے اسکیما سلائی کو برقرار رکھیں۔

  1. کے استعمال کی وضاحت کرتا ہے۔ اپالو فیڈریشن میں ہدایت اور یہ ہاٹ چاکلیٹ کے ساتھ کیسے ضم ہوتا ہے۔ مزید تفصیلات کے لیے، پر آفیشل ہاٹ چاکلیٹ دستاویزات دیکھیں ہاٹ چاکلیٹ دستاویزات .
  2. ہاٹ چاکلیٹ کا استعمال کرتے ہوئے اپالو فیڈریشن کے ساتھ گراف کیو ایل کو ترتیب دینے کا ایک جائزہ فراہم کرتا ہے۔ سے اس گائیڈ کو دیکھیں اپالو فیڈریشن دستاویزات مزید معلومات کے لیے
  3. HotChocolate کا استعمال کرتے ہوئے GraphQL میں سروس رجسٹریشن اور استفسار کے حل کی ایک تفصیلی مثال پیش کرتا ہے۔ پر اس مضمون میں مزید پایا جا سکتا ہے ہاٹ چاکلیٹ کے ساتھ سروس انٹیگریشن .