Motoshub · API v1 · Delivery Status

وضعیت تحویل: ادغام مستقل، مجوزها و تست‌ها

این صفحه ساختار نهایی تحویل API v1 را شرح می‌دهد: ۱۰ درخواست ادغامِ مستقل و موازی، خودکفایی مجوز هر پلاگین، مستندسازی خودکار، و مجموعه‌ی تست.

293 عملیات
178 مسیر
10 درخواست ادغام مستقل
120 assertion سبز

۱) درخواست‌های ادغامِ مستقل و موازی

هر دسته مستقیماً از moto-next جدا شده و مستقیماً به moto-next هدف می‌گیرد (نه پشته‌ای). هیچ دو دسته‌ای فایل مشترک ندارند، پس می‌توان آن‌ها را موازی review و merge کرد. فایل‌های مشترک (init.php، install.php، bootstrap) فقط افزوده شده‌اند و هرگز خطی حذف نشده است.

دستهدامنهوابستگی
foundationپلاگین api: کاربران، فایل، احراز هویت، مستندسازی خودکارپیش‌نیاز Bridge
shipped-fixesرفع اشکال بلاگ، خبر، عکس، ویدیو (شامل رفع IDOR عکس)مستقل
socialدوستان، اعلان‌ها، حریم خصوصی، منشن، جستجو، کامنتمستقل
contentرویداد، فروم، نظرسنجی، صفحه‌سازمستقل
communityفید، گروه‌ها، پیام‌رسانپیش‌نیاز Bridge
quizپرسمان‌ساز و داوریمستقل
challengeمسابقات تعاملی، مسابقات، ارزیابیمستقل
journalنشریه: شماره، مقاله، نویسنده، کلیدواژه، قالب ارجاعمستقل
orgگرنت، فراخوان، تیکتینگ، کارمند، فناوری، واحد فناورپیش‌نیاز Bridge
bridge-api-fixesرفع باگ‌های چارچوب + دو فایل پیش‌نیاز (StringLength، AccountGate)بازبینی مالک Bridge
ترتیب merge: شش دسته کاملاً مستقل‌اند و به هر ترتیبی merge می‌شوند. سه دسته (foundation، community، org) به دو فایلِ جدیدِ چارچوب (StringLength، AccountGate) در دسته‌ی bridge-api-fixes وابسته‌اند و باید پس از آن merge شوند.

۲) خودکفایی مجوزها (بدون دستور مرکزی)

هر پلاگین فیچر، اکشن‌های REST خودش را ثبت و به همه‌ی نقش‌ها اعطا می‌کند — در دو محل:

اثبات: با حذف اکشن‌های API گروه event از دیتابیس و اجرای فقط event/update/<build>/update.php، دوباره GET /events کد ۲۰۰ و POST /events کد ۲۰۱ برگرداند — بدون هیچ دستور مرکزی.

۳) مستندسازی خودکار Swagger

SwaggerController حالا با glob روی ow_plugins/*/src/Http همه‌ی پلاگین‌های دارای API را خودکار پیدا می‌کند. هیچ فیچری دیگر لازم نیست این فایل مشترک را دست بزند، پس دسته‌ها روی آن تعارض نمی‌خورند. خروجی: همان ۲۹۳ عملیات روی ۱۷۸ مسیر.

۴) مجموعه‌ی تست Pest

برای هر کنترلر API v1 یک فایل تست بر اساس تمپلیت رسمی AuthControllerTest نوشته شده و در دسته‌ی همان پلاگین قرار گرفته است. helperهای مشترک در Pest.php: بوت یک‌باره‌ی autoload پلاگین‌ها، یک authenticator باحالت (تا login()/isAdmin() در هارنس کار کنند)، و کارخانه‌ی کاربر ادمین + توکن JWT.

پوشش هر کنترلر: پاسخ موفق فهرست (با پاکت صفحه‌بندی)، رد درخواست بدون احراز هویت با ۴۰۱، تبدیل شناسه‌ی غیرعددی به ۴۰۴ به‌جای خطای مرگبار، و استثنای دامنه برای رکورد ناموجود/بدنه‌ی خالی. کنترلر رویداد چرخه‌ی کامل ساخت/خواندن/ویرایش‌جزئی/حذف را هم می‌آزماید.

نتیجه روی استک محلی: ۱۲۰ assertion سبز در همه‌ی فایل‌های تولیدشده. endpointهایی که به context والد، theme، یا دسترسی خاص نیاز دارند، قرارداد قابل‌حمل را می‌آزمایند (مسیر dispatch می‌شود، هیچ خطای مرگباری رخ نمی‌دهد).
docs.shub.ir/reports/delivery-status.html · نسخه‌ی زنده و قابل‌به‌روزرسانی