JSON إلى مخطط GraphQL (SDL)

ولّد أنواع كائنات GraphQL SDL من JSON: Int مقابل Float وعلامات عدم القبول بـ null وأنواع القوائم والأنواع المتداخلة المستنتجة من عيّنتك. مجاني داخل المتصفح.

الحقول غير القابلة لـ null تحمل "!". الأعداد الصحيحة الأكبر من 32 بت تصبح Float؛ والقيم المختلطة أو null فقط تستخدم نوعًا مخصصًا JSON.

يعمل بالكامل في متصفحك. لا يتم رفع بياناتك أبدًا.

أدوات ذات صلة

عرض الكل

ما هو JSON إلى GraphQL؟

ولّد تصريحات type بلغة تعريف مخطط GraphQL (SDL) من عيّنة JSON. تحصل القيم المطلوبة على علامة عدم القبول بـ null وهي !، وتصبح المصفوفات أنواع قوائم، وتصبح الكائنات المتداخلة أنواع كائنات منفصلة.

كيفية استخدام JSON إلى GraphQL

  1. الصق عيّنة JSON في إدخال JSON (أو انقر تحميل مثال / فتح ملف).
  2. اضبط اسم النوع الجذر (الافتراضي Root).
  3. انسخ شيفرة GraphQL الناتجة أو تنزيل كملف.

مثال

الإدخال
{"id":1,"name":"A","tags":["x"]}
الإخراج
type Root {
  id: Int!
  name: String!
  tags: [String!]!
}

متى تستخدم JSON إلى GraphQL

استخدمه لرسم مخطط واجهة GraphQL تغلّف خدمة JSON/REST قائمة. يُصدر أنواع الإخراج فقط؛ أما أنواع الإدخال والاستعلامات والتعديلات (mutations) والمحللات (resolvers) فما زال عليك كتابتها.

كيف يعمل JSON إلى GraphQL

تُجتاز العيّنة تكراريًا ويجمع كل موضع الأنواع التي رآها. تُدمج مصفوفات الكائنات في نوع واحد: فالمفتاح الغائب من بعض العناصر يصبح اختياريًا، والمفتاح الذي يكون null في موضع ما يصبح قابلًا لـ null، والأعداد الصحيحة المختلطة بكسرية تصبح نوع الفاصلة العائمة، وأي خلط آخر للأنواع يعود إلى نوع ديناميكي. وتصبح الكائنات المتداخلة أنواعًا مسماة (PascalCase للمفتاح مع إفراد مفاتيح المصفوفات: orders ← Order) مع لواحق رقمية عند تعارض الأسماء. يقابل ناتج GraphQL الأعداد الصحيحة بـ Int (أو Float عندما تتجاوز قيمة 32 بتًا لأن Int في GraphQL بحجم 32 بتًا) والكسرية بـ Float والنصوص بـ String والمنطقية بـ Boolean. وتكون القيم التي هي null أو غائبة في العيّنة قابلة لـ null (بلا !). وتستخدم القيم المختلطة أو التي هي null فقط نوعًا قياسيًا مخصصًا JSON يُصرَّح به في الأعلى عند الحاجة. وتُحوَّل أسماء الحقول التي ليست أسماء GraphQL صالحة إلى camelCase.

حالات الاستخدام الشائعة

  • صياغة أنواع الكائنات لبوابة GraphQL فوق REST API
  • توثيق شكل بيانات JSON بصيغة SDL
  • بدء تصميم API يبدأ بالمخطط من بيانات عيّنة
  • مقارنة حمولات REST بمخطط GraphQL قائم

الأسئلة الشائعة

لماذا نُوِّع المعرّف Int وليس ID؟

تُظهر العيّنة رقمًا فقط. غيّره إلى ID! إذا كان الحقل معرّفًا؛ فالأداة لا تعرف الدلالة.

ما هو النوع القياسي JSON؟

نوع قياسي مخصص للقيم متغيرة النوع. على خادمك تعريفه، مثلًا بواسطة graphql-scalars.

لماذا Float للأعداد الصحيحة الكبيرة؟

Int في GraphQL محدود بقيم 32 بتًا موقعة؛ وستُرفض الأعداد الأكبر، لذا تُقابَل بـ Float (أو استخدم نوع BigInt قياسيًا مخصصًا).

استكشف المزيد من الفئات