تطبيق GraphQL لفضح موارد الفائض المكدس بكفاءة (التعليقات ، المشاركات ، الإجابات ، الأصوات ، إلخ)
لا يحتوي Stack Exchange على نقطة نهاية GraphQL ، لذا فقد صنعت واحدة. واجهة برمجة تطبيقات Live أعلاه في وضع POC الآن حيث تم بناء المخطط. يقدم حاليًا محتوى من https://health.stackexchange.com/ ويتم تحديثه أسبوعيًا مع المزيد من الحضور حيث يتم تعزيز خط الأنابيب و INFRA. توقع الحد الأدنى من الكمون لأن هذا يتم استضافته حاليًا في خدمة التطبيقات ، والتي ستنخفض خلال فترات الاستخدام المنخفض. إذا حدث هذا ، فيرجى التحلي بالصبر ويجب أن يأتي الملعب/الطلبات المشتعلة بعد "الاستيقاظ" الأول. إذا حصل هذا على بعض الجر ، فسيتم زيادة التوفر.
لتشغيل محليا:
docker-compose up
وزيارة http: // localhost: 8080 لبدء استخدام الملعب أو ضرب نقطة النهاية مع بعض الاستفسارات! على سبيل المثال ، للحصول على معلومات عن أعلى صفحات أسئلة وأجوبة في التهديف في مجتمع فرعي:
query postsPagination {
allPostsCursor(first: 10, where: { order: { field: votes, order: DESC } }) {
pageInfo {
hasNextPage
hasPreviousPage
}
edges {
cursor
node {
score
title
body
comments {
userId
text
}
answers {
score
body
comments {
userDisplayName
text
}
}
}
}
}
}
الخادم متاح أيضًا كحاوية Docker شريطة وجود خلفية منفصلة:
docker run -e SERVER='<dbhost>' -e UNAME='<dbUname>' -e PASS='<dbPass>' snimmagadda/stack-exchange-graphql-server:latest
أو للركض من المصدر:
go run cmd/server.goيجب تعيين بعض متغيرات البيئة على التشغيل محليًا
| مفتاح | يكتب | وصف | مثال |
|---|---|---|---|
SERVER | خيط | مضيف DB | المضيف المحلي |
SCHEMA | خيط | مخطط DB APP | ستاك |
UNAME | خيط | app db username cred | appuser |
PASS | خيط | app db password cred | supersecret123 |
يجب أن يكون SERVER اسم مضيف MySQL DB. من أجل خدمة المحتوى ، يتوقع خادم GraphQL مخطط stacke ذي الملعب.
TODO: المعلمات القابلة للتكوين ...
go build cmd/server.goخيارات التطوير مرنة بسهولة مع المزيد من الطرق المبسطة القادمة ... في الوقت الحالي ، ما يلي متاح:
قم بتشغيل الواجهة الخلفية فقط باستخدام Docker (أو تعديل واستخدم docker-compose.yml )
docker run --name test-mysql -e MYSQL_ROOT_PASSWORD=password -e MYSQL_ROOT_USER=root -e MYSQL_PASSWORD=password -d -p 3306:3306 mysql:5.7.26
~ 1K صفوف موجودة هنا سيتم استخدامها كإدراج لمخططك.
قم بإنشاء (أو نسخ) ملف .env مع المتغيرات في الجدول أعلاه تعيين لتكوين خادم GraphQL المحلي.
بدء الخادم:
go run cmd/server.go
TODO من المحتمل أن أقوم ببعض التحسينات وأتبادل شيئًا مثل الواجهة الخلفية المرنة ولكن في الوقت الحالي ، يوجد الإعداد المبكر. يتم استيراد مقالب XML التي تم نشرها بواسطة Stack Exchange إلى الواجهة الخلفية المفهرسة باستخدام وظيفة مكتوبة مع دفعة زنبركية على جدول زمني. يقرأ خادم GraphQL من هذه الواجهة الخلفية لفضح بيانات تبادل المكدس. 
؟ ساي نيمغادادا
هذا المشروع حاليا في وضع البناء. المساهمات والقضايا وطلبات الميزات موضع ترحيب!
لا تتردد في التحقق من صفحة المشكلات.
إعطاء ️ إذا ساعدك هذا المشروع!
حقوق الطبع والنشر © 2020 Sai Nimmagadda.
هذا المشروع مرخص معهد ماساتشوستس للتكنولوجيا.
تم إنشاء هذا ReadMe مع ❤ بواسطة readme-md-generator