تحويل JSON إلى GraphQL schema
مفيدة عند بناء خادم GraphQL فوق API موجود، إذ تبدأ منها تعريف الأنواع بدل كتابتها من الصفر.
جارٍ تحميل الأداة…
المعالجة والخصوصية: تُحسب النتيجة داخل متصفحك ولا تُرسل بياناتك إلى أي خادم.
طريقة الاستخدام
- أدخل نص JSON واسم النوع الرئيسي.
- تظهر النتيجة فورًا وتتحدّث مع كل تعديل.
- انسخ النتيجة، أو انسخ رابطًا يحفظ القيم نفسها لمشاركتها.
طريقة الحساب
String وInt وFloat وBoolean وقوائم [T]، وtype لكل كائن. الحقل الموجود دائما دون null يأخذ علامة !. نوع Int في GraphQL عدد 32 بت، فالأعداد الأكبر من 2147483647 تصبح Float مع تعليق، والقيم المختلطة تستخدم scalar JSON.
مثال
المدخلات: اسم النوع الرئيسي = Root. النتيجة: الكود الناتج: type Root { id: Int! name: String! email: String! isActive: Boolean! # JSON key: "is_active" balance: Float! tags: [String!]! address: Address! orders: [Order!]! } type Address { city: String! postalCode: String! # JSON key: "postal_code" } type Order { orderId: String! # JSON key: "order_id" total: Float! coupon: String }، عدد الأنواع: 3، عدد الحقول: 13.
{
"id": 1024,
"name": "Sara Ahmed",
"email": "sara@example.com",
"is_active": true,
"balance": 1520.75,
"tags": ["vip", "riyadh"],
"address": { "city": "Riyadh", "postal_code": "12211" },
"orders": [
{ "order_id": "A-1", "total": 99.5, "coupon": "EID10" },
{ "order_id": "A-2", "total": 120, "coupon": null }
]
}type Root {
id: Int!
name: String!
email: String!
isActive: Boolean! # JSON key: "is_active"
balance: Float!
tags: [String!]!
address: Address!
orders: [Order!]!
}
type Address {
city: String!
postalCode: String! # JSON key: "postal_code"
}
type Order {
orderId: String! # JSON key: "order_id"
total: Float!
coupon: String
}الحدود والملاحظات
- scalar JSON يحتاج تعريفا في الخادم، مثل الموجود في مكتبة graphql-scalars.
- GraphQL لا يعيد تسمية المفاتيح، فالحقل الذي تغير اسمه يحتاج resolver يقرأ المفتاح الأصلي.
أسئلة شائعة عن هذه الأداة
ماذا تعني علامة ! بعد النوع؟
تعني أن الحقل لا يعود null أبدا. تضاف فقط للمفاتيح الموجودة في كل العناصر دون قيمة null.
لماذا أصبح عدد كبير من نوع Float؟
Int في GraphQL محدود في 32 بت، وFloat يحفظ الأعداد الصحيحة بدقة حتى 2 أس 53.
هل ترسل بياناتي إلى خادم؟
لا، التحويل يعمل داخل متصفحك ولا يغادر نص JSON جهازك.
