Skip to content

مرجع API ​

يقوم mineproj بإنشاء API ثابت بالكامل شبيه بـ REST تحت dist/api/v1/. كل نقطة نهاية تخدم JSON ثابت — لا حاجة لخلفية.

المغلف ​

كل استجابة تتبع هذا الهيكل:

json
{
  "apiVersion": "v1",
  "kind": "ProjectList",
  "generatedAt": "2026-01-01T00:00:00.000Z",
  "schemaVersion": 1,
  "data": { ... }
}

نقاط النهاية ​

نقطة النهايةالنوع (Kind)الوصف
/api/v1/projects.jsonProjectListقائمة المشاريع الكاملة
/api/v1/projects/<slug>.jsonProjectتفاصيل مشروع واحد
/api/v1/tags.jsonTagListجميع الوسوم مع الأعداد
/api/v1/categories.jsonCategoryListجميع الفئات
/api/v1/collections.jsonCollectionListجميع المجموعات
/api/v1/profile.jsonProfileبيانات الملف الشخصي
/api/v1/stats.jsonStatsإحصائيات مجمعة
/api/v1/search.jsonSearchIndexفهرس MiniSearch
/api/v1/feed.jsonFeedعناصر الخلاصة
/api/v1/manifest.jsonManifestقائمة نقاط نهاية واصفة ذاتيًا

معاملات الاستعلام (وضع التطوير) ​

المعاملمثالالوصف
q?q=webبحث نصي كامل
tag?tag=web,gameتصفية حسب الوسوم (AND)
category?category=webتصفية حسب الفئة
status?status=releasedتصفية حسب الحالة
sort?sort=createdAt:descحقل الفرز والاتجاه
page?page=2رقم الصفحة
pageSize?pageSize=20العناصر لكل صفحة
lang?lang=enاللغة للبيانات المترجمة

SDK الخاص بالعميل ​

ts
import { createApiClient } from '@mineproj/client';

const api = createApiClient({ baseUrl: 'https://example.com' });
const projects = await api.getProjects();
const project = await api.getProject('my-project');
const results = await api.search('web');

خطافات React:

ts
import { useProjects, useProject, useTags, useSearch } from '@mineproj/client';

function MyComponent() {
  const { data, loading } = useProjects({ tag: 'web' });
  return <div>{loading ? 'Loading...' : data.length} projects</div>;
}

Released under the Apache-2.0 License.