Discourse2 على npm: غلاف TypeScript لواجهة برمجة تطبيقات Discourse

لقد نشرت في الأصل “discourse2” على npm قبل عام، ولكن مؤخرًا بذلت الكثير من الجهد فيه. إنه في الأساس حزمة تطوير برمجيات (SDK) لـ TypeScript / JavaScript لواجهة برمجة تطبيقات Discourse، تم إنشاؤها من مواصفات OpenAPI الخاصة بـ Discourse. هذا يجعل العمل معه سهلاً للغاية:

discourse completion

discourse getTopic type

يبدو الاستخدام كالتالي:

import Discourse from "discourse2";

const discourse = new Discourse("https://discourse.example.org/", {
  "Api-Key": process.env.DISCOURSE_API_KEY,
  "Api-Username": process.env.DISCOURSE_API_USERNAME,
});

const result = await discourse.listLatestTopics();
console.log(result);

هناك أيضًا عرض توضيحي مباشر على CodeSandbox.

الميزات:

  • واجهة برمجة تطبيقات Discourse بأكملها (المنشورة في مواصفات OpenAPI).
  • محدثة دائمًا: يتم التحقق من مواصفات OpenAPI بحثًا عن التغييرات يوميًا، وتقوم الحزمة تلقائيًا بإعادة البناء ونشر نفسها عند حدوث تغييرات. يتم عرض أحدث استرداد كشارة في أعلى ملف README: Discourse API update date
  • تعمل في بيئات الخادم والمتصفح* (*مفيدة للاستعلام عن البيانات العامة بدون مفاتيح API وعلى الأصل ذي الصلة، على سبيل المثال، أحدث المواضيع، إلخ)

يرجى منحها نجمة على GitHub حتى أتمكن من قياس الاهتمام وتحديد مقدار الوقت الإضافي الذي يجب أن أقضيه في هذا. نرحب بالتعليقات. هناك بعض الأمور الغريبة كما هو مذكور في قسم الملاحظات في ملف README.

10 إعجابات

أحب المشروع، شكراً جزيلاً :heart:

إعجاب واحد (1)

مرحباً بالجميع، شكراً لكل الإعجابات والدعم. إليك بعض التحديثات:

:white_check_mark: تغطية اختبار بنسبة 86%؛ معظمها اختبارات شاملة (E2E) على نسخة Discourse حقيقية. أعتقد أن كل شيء تقريباً يعمل مع المستخدم system، أحتاج إلى التجربة مع مستخدمين آخرين لبعض الطرق.

:white_check_mark: تم إصلاح مجموعة من الأخطاء على طول الطريق، معظمها يتعلق بطلبات PUT وإعادة التوجيه.

:white_check_mark: تم النشر على JSR بدرجة جودة 100%. لا تزال جميع الإصدارات تُنشر بشكل مشترك على NPM أيضاً.

:white_check_mark: تحسين TSDocs. يتضمن description أيضاً عند توفره، وليس فقط summary. أيضاً وثائق @module وأمثلة @example.

:white_check_mark: تم التطوير في Deno v2 لتجربة تطوير سريعة ومريحة. لا يزال يتم اختباره بالكامل في node مع كل التزام، ولكنه ودود مع وقت تشغيل بديل!

:white_check_mark: 425 تنزيل أسبوعي على NPM (ولكن يفترض أن يكون ذلك بسبب الروبوتات وتكرار الإصدارات :sweat_smile:).

لقد انتهيت تقريباً من هذا في الوقت الحالي. لا يزال أرغب في قضاء المزيد من الوقت في سلامة التحقق (وربما بعض تحويل الأنواع) ولكن هذا يُستخدم في مشاريع حقيقية بتأثير جيد. يرجى فتح أي مشاكل للأخطاء أو طلبات الميزات، واستمتعوا بالنقاش! :tada:

3 إعجابات