الوثائق
الإضافات
تسجيل البرنامج المساعد، وتثبيت الحزمة، والتكوين، وتمكين/تعطيل، وأصول البرنامج المساعد المقدمة.
مترجم تلقائيًا من الإنجليزية. عرض الأصل بالإنجليزية
أرسل هذه الطلبات إلى السايدكار الخاصة بك. تبقى القيم في هذا المتصفح.
كيف يعمل هذا
يستمع السايدكار إلى منفذ الاسترجاع الذي تم اختياره عند بدء التشغيل ويطبعه في منفذ الاسترجاع الخاص به ready خط؛ استخدم عنوان URL هذا و CADCAMFUN_TOKEN لقد بدأ مع. تذهب الطلبات مباشرة من هذه الصفحة إلى هذا العنوان.
يرسل السايدكار رؤوس CORS فقط إلى أصول Tauri وإلى http://localhost أو http://127.0.0.1 على أي منفذ. من المستندات المستضافة، يحظر المتصفح الاستجابة، لذا قم بتشغيل المستندات محليًا (bun run dev في packages/web) لاستخدام الملعب، أو نسخ الطلب كحليقة. للتجربة دون لمس البيانات الحقيقية، ابدأ تشغيل السايدكار باستخدام CADCAMFUN_DATA_DIR أشار إلى دليل مهمل - انظر إرشادات واجهة برمجة التطبيقات.
العمليات
16 نقاط نهاية في plugins المجموعة التي تم إنشاؤها من السايدكار مستند OpenAPI. تأخذ العمليات المحمية Authorization: Bearer $CADCAMFUN_TOKEN; يرى المصادقة. السلوك والحدود موجودة دليل النظام الفرعي.
| بريد | /api/plugins/install | plugins.install |
| يحصل | /api/plugins/bootstrap.js | plugins.bootstrap |
| يحصل | /api/plugins/serve | plugins.serve |
| يحصل | /api/plugins | plugins.list |
| يحصل | /api/plugins/{id} | plugins.get |
| يمسح | /api/plugins/{id} | plugins.uninstall |
| يحصل | /api/plugins/{id}/config | plugins.getConfig |
| بريد | /api/plugins/{id}/config | plugins.setConfig |
| يضع | /api/plugins/{id}/config | plugins.updateConfig |
| بريد | /api/plugins/{id}/enable | plugins.enable |
| بريد | /api/plugins/{id}/disable | plugins.disable |
| يضع | /api/plugins/{id}/update | plugins.update |
| رقعة | /api/plugins/{id}/update | plugins.patch |
| يحصل | /api/plugins/registry | plugins.registry |
| يحصل | /api/plugins/registry/{id} | plugins.registryGet |
| يحصل | /api/plugins/registry/search | plugins.registrySearch |
/api/plugins/install
plugins.install يتطلب Authorization: Bearer <token>.
{ file: string[] }
201 هدف application/json
{ message: string plugin: { id: string manifest: { id: string name: string version: string description: string author: string repository?: string | null license?: string | null icon?: string | null main: string engines: { cadcam: string } permissions: Array<"model:read" | "model:write" | "model:selection" | "ui:sidebar" | "ui:toolbar" | "ui:contextMenu" | "ui:propertyPanel" | "ui:modal" | "ui:overlay" | "storage:local" | "storage:sync" | "file:read" | "file:write" | "file:downloads" | "network:origin" | "network:external" | "system:clipboard" | "system:notifications" | "ui:fullscreen" | "device:camera" | "device:microphone"> dependencies?: { [key: string]: string } | null contributes?: { sidebar?: { title: string icon: string entry: string } | null commands?: Array<{ id: string title: string icon?: string | null keybinding?: string | null }> | null menus?: { toolbar?: Array<{ command: string group?: string | null when?: string | null priority?: number | "Infinity" | "-Infinity" | "NaN" | null }> | null contextMenu?: Array<{ command: string group?: string | null } | null propertyPanel?: Array<{ id: string title: string entry: string appliesTo?: string | null themes?: Array<{ id: string label: string path: string }> | null } | null configuration?: { properties: { [key: string]: { type: string default?: unknown | null description?: string | null enum?: unknown[] | null minimum?: number | "Infinity" | "-Infinity" | "NaN" | null maximum?: number | null pattern?: string | null } } } | null } state: "none" | "installed" | "enabled" | "disabled" | "loaded" | "activated" | "deactivated" | "error" enabled: boolean version: string installedAt: string updatedAt: string config?: object | null configurationId?: string | null errorCount: number | "Infinity" | "-Infinity" | "NaN" lastError?: string | null } }
400 PluginBadRequestEncoded application/json
PluginBadRequestEncoded
401 UnauthorizedEncoded application/json
UnauthorizedEncoded
409 PluginConflictEncoded application/json
PluginConflictEncoded
500 KeyedInternalEncoded application/json
KeyedInternalEncoded
جلب المثال
// Not generated in the Promise SDK (multipart, binary or raw body): call it with fetch.
const response = await fetch(`${process.env.CADCAMFUN_URL}/api/plugins/install`, {
method: "POST",
headers: { authorization: `Bearer ${process.env.CADCAMFUN_TOKEN}` },
}) curl
curl --request POST "${CADCAMFUN_URL}/api/plugins/install" \
--header "Authorization: Bearer ${CADCAMFUN_TOKEN}" \
--header "Content-Type: multipart/form-data" \
--data-binary @request-body جربه
تأخذ هذه العملية بيانات متعددة الأجزاء/النموذج؛ استخدم مثال الضفيرة أو الجلب.
/api/plugins/bootstrap.js
plugins.bootstrap يتطلب Authorization: Bearer <token>.
| اسم | في | يكتب | مطلوب |
|---|---|---|---|
| بطاقة تعريف | استفسار | خيط | مطلوب |
200 خيط application/javascript
string 400 خيط application/javascript
string 401 UnauthorizedEncoded application/json
UnauthorizedEncoded
404 خيط application/javascript
string 500 خيط application/javascript
string جلب المثال
// Not generated in the Promise SDK (multipart, binary or raw body): call it with fetch.
const response = await fetch(`${process.env.CADCAMFUN_URL}/api/plugins/bootstrap.js`, {
method: "GET",
headers: { authorization: `Bearer ${process.env.CADCAMFUN_TOKEN}` },
}) curl
curl --request GET "${CADCAMFUN_URL}/api/plugins/bootstrap.js?id=<id>" \
--header "Authorization: Bearer ${CADCAMFUN_TOKEN}" جربه
/api/plugins/serve
plugins.serve يتطلب Authorization: Bearer <token>.
| اسم | في | يكتب | مطلوب |
|---|---|---|---|
| بطاقة تعريف | استفسار | خيط | مطلوب |
| ملف | استفسار | خيط | مطلوب |
200 خيط application/octet-stream
string 400 PluginBadRequestEncoded application/json
PluginBadRequestEncoded
401 UnauthorizedEncoded application/json
UnauthorizedEncoded
404 PluginNotFoundEncoded application/json
PluginNotFoundEncoded
500 KeyedInternalEncoded application/json
KeyedInternalEncoded
جلب المثال
// Not generated in the Promise SDK (multipart, binary or raw body): call it with fetch.
const response = await fetch(`${process.env.CADCAMFUN_URL}/api/plugins/serve`, {
method: "GET",
headers: { authorization: `Bearer ${process.env.CADCAMFUN_TOKEN}` },
}) curl
curl --request GET "${CADCAMFUN_URL}/api/plugins/serve?id=<id>&file=<file>" \
--header "Authorization: Bearer ${CADCAMFUN_TOKEN}" جربه
/api/plugins
plugins.list يتطلب Authorization: Bearer <token>.
200 صفيف <كائن> application/json
Array<{ id: string manifest: { id: string name: string version: string description: string author: string repository?: string | null license?: string | null icon?: string | null main: string engines: { cadcam: string } permissions: Array<"model:read" | "model:write" | "model:selection" | "ui:sidebar" | "ui:toolbar" | "ui:contextMenu" | "ui:propertyPanel" | "ui:modal" | "ui:overlay" | "storage:local" | "storage:sync" | "file:read" | "file:write" | "file:downloads" | "network:origin" | "network:external" | "system:clipboard" | "system:notifications" | "ui:fullscreen" | "device:camera" | "device:microphone"> dependencies?: { [key: string]: string } | null contributes?: { sidebar?: { title: string icon: string entry: string } | null commands?: Array<{ id: string title: string icon?: string | null keybinding?: string | null }> | null menus?: { toolbar?: Array<{ command: string group?: string | null when?: string | null priority?: number | "Infinity" | "-Infinity" | "NaN" | null }> | null contextMenu?: Array<{ command: string group?: string | null } | null propertyPanel?: Array<{ id: string title: string entry: string appliesTo?: string | null themes?: Array<{ id: string label: string path: string }> | null } | null configuration?: { properties: { [key: string]: { type: string default?: unknown | null description?: string | null enum?: unknown[] | null minimum?: number | "Infinity" | "-Infinity" | "NaN" | null maximum?: number | null pattern?: string | null } } } | null } state: "none" | "installed" | "enabled" | "disabled" | "loaded" | "activated" | "deactivated" | "error" enabled: boolean version: string installedAt: string updatedAt: string config?: object | null configurationId?: string | null errorCount: number | "Infinity" | "-Infinity" | "NaN" lastError?: string | null }>
401 UnauthorizedEncoded application/json
UnauthorizedEncoded
500 KeyedInternalEncoded application/json
KeyedInternalEncoded
رد المثال تم الالتقاط · 200
[] مثال SDK
import { CadCam } from "@cadcamfun/api/sdk"
const client = CadCam.make({
baseUrl: process.env.CADCAMFUN_URL!,
headers: { authorization: `Bearer ${process.env.CADCAMFUN_TOKEN}` },
})
// no input
const result = await client.plugins.list() curl
curl --request GET "${CADCAMFUN_URL}/api/plugins" \
--header "Authorization: Bearer ${CADCAMFUN_TOKEN}" جربه
plugins.get يتطلب Authorization: Bearer <token>.
| اسم | في | يكتب | مطلوب |
|---|---|---|---|
| بطاقة تعريف | طريق | خيط | مطلوب |
200 هدف application/json
{ id: string manifest: { id: string name: string version: string description: string author: string repository?: string | null license?: string | null icon?: string | null main: string engines: { cadcam: string } permissions: Array<"model:read" | "model:write" | "model:selection" | "ui:sidebar" | "ui:toolbar" | "ui:contextMenu" | "ui:propertyPanel" | "ui:modal" | "ui:overlay" | "storage:local" | "storage:sync" | "file:read" | "file:write" | "file:downloads" | "network:origin" | "network:external" | "system:clipboard" | "system:notifications" | "ui:fullscreen" | "device:camera" | "device:microphone"> dependencies?: { [key: string]: string } | null contributes?: { sidebar?: { title: string icon: string entry: string } | null commands?: Array<{ id: string title: string icon?: string | null keybinding?: string | null }> | null menus?: { toolbar?: Array<{ command: string group?: string | null when?: string | null priority?: number | "Infinity" | "-Infinity" | "NaN" | null }> | null contextMenu?: Array<{ command: string group?: string | null } | null propertyPanel?: Array<{ id: string title: string entry: string appliesTo?: string | null themes?: Array<{ id: string label: string path: string }> | null } | null configuration?: { properties: { [key: string]: { type: string default?: unknown | null description?: string | null enum?: unknown[] | null minimum?: number | "Infinity" | "-Infinity" | "NaN" | null maximum?: number | null pattern?: string | null } } } | null } state: "none" | "installed" | "enabled" | "disabled" | "loaded" | "activated" | "deactivated" | "error" enabled: boolean version: string installedAt: string updatedAt: string config?: object | null configurationId?: string | null errorCount: number | "Infinity" | "-Infinity" | "NaN" lastError?: string | null }
400 PluginBadRequestEncoded application/json
PluginBadRequestEncoded
401 UnauthorizedEncoded application/json
UnauthorizedEncoded
404 PluginNotFoundEncoded application/json
PluginNotFoundEncoded
500 KeyedInternalEncoded application/json
KeyedInternalEncoded
مثال SDK
import { CadCam } from "@cadcamfun/api/sdk"
const client = CadCam.make({
baseUrl: process.env.CADCAMFUN_URL!,
headers: { authorization: `Bearer ${process.env.CADCAMFUN_TOKEN}` },
})
// PluginsGetInput
const result = await client.plugins.get({
id: "<id>"
}) curl
curl --request GET "${CADCAMFUN_URL}/api/plugins/<id>" \
--header "Authorization: Bearer ${CADCAMFUN_TOKEN}" جربه
plugins.uninstall يتطلب Authorization: Bearer <token>.
| اسم | في | يكتب | مطلوب |
|---|---|---|---|
| بطاقة تعريف | طريق | خيط | مطلوب |
200 هدف application/json
{ message: string }
400 PluginBadRequestEncoded application/json
PluginBadRequestEncoded
401 UnauthorizedEncoded application/json
UnauthorizedEncoded
404 PluginNotFoundEncoded application/json
PluginNotFoundEncoded
500 KeyedInternalEncoded application/json
KeyedInternalEncoded
مثال SDK
import { CadCam } from "@cadcamfun/api/sdk"
const client = CadCam.make({
baseUrl: process.env.CADCAMFUN_URL!,
headers: { authorization: `Bearer ${process.env.CADCAMFUN_TOKEN}` },
})
// PluginsUninstallInput
const result = await client.plugins.uninstall({
id: "<id>"
}) curl
curl --request DELETE "${CADCAMFUN_URL}/api/plugins/<id>" \
--header "Authorization: Bearer ${CADCAMFUN_TOKEN}" جربه
plugins.getConfig يتطلب Authorization: Bearer <token>.
| اسم | في | يكتب | مطلوب |
|---|---|---|---|
| بطاقة تعريف | طريق | خيط | مطلوب |
200 هدف application/json
object 400 PluginBadRequestEncoded application/json
PluginBadRequestEncoded
401 UnauthorizedEncoded application/json
UnauthorizedEncoded
404 PluginNotFoundEncoded application/json
PluginNotFoundEncoded
500 KeyedInternalEncoded application/json
KeyedInternalEncoded
مثال SDK
import { CadCam } from "@cadcamfun/api/sdk"
const client = CadCam.make({
baseUrl: process.env.CADCAMFUN_URL!,
headers: { authorization: `Bearer ${process.env.CADCAMFUN_TOKEN}` },
})
// PluginsGetConfigInput
const result = await client.plugins.getConfig({
id: "<id>"
}) curl
curl --request GET "${CADCAMFUN_URL}/api/plugins/<id>/config" \
--header "Authorization: Bearer ${CADCAMFUN_TOKEN}" جربه
plugins.setConfig يتطلب Authorization: Bearer <token>.
| اسم | في | يكتب | مطلوب |
|---|---|---|---|
| بطاقة تعريف | طريق | خيط | مطلوب |
object 200 هدف application/json
{ message: string }
400 PluginBadRequestEncoded application/json
PluginBadRequestEncoded
401 UnauthorizedEncoded application/json
UnauthorizedEncoded
404 PluginNotFoundEncoded application/json
PluginNotFoundEncoded
500 KeyedInternalEncoded application/json
KeyedInternalEncoded
مثال SDK
import { CadCam } from "@cadcamfun/api/sdk"
const client = CadCam.make({
baseUrl: process.env.CADCAMFUN_URL!,
headers: { authorization: `Bearer ${process.env.CADCAMFUN_TOKEN}` },
})
// PluginsSetConfigInput
const result = await client.plugins.setConfig({
id: "<id>"
}) curl
curl --request POST "${CADCAMFUN_URL}/api/plugins/<id>/config" \
--header "Authorization: Bearer ${CADCAMFUN_TOKEN}" \
--header "Content-Type: application/json" \
--data-binary @request.json جربه
plugins.updateConfig يتطلب Authorization: Bearer <token>.
| اسم | في | يكتب | مطلوب |
|---|---|---|---|
| بطاقة تعريف | طريق | خيط | مطلوب |
object 200 هدف application/json
{ message: string }
400 PluginBadRequestEncoded application/json
PluginBadRequestEncoded
401 UnauthorizedEncoded application/json
UnauthorizedEncoded
404 PluginNotFoundEncoded application/json
PluginNotFoundEncoded
500 KeyedInternalEncoded application/json
KeyedInternalEncoded
مثال SDK
import { CadCam } from "@cadcamfun/api/sdk"
const client = CadCam.make({
baseUrl: process.env.CADCAMFUN_URL!,
headers: { authorization: `Bearer ${process.env.CADCAMFUN_TOKEN}` },
})
// PluginsUpdateConfigInput
const result = await client.plugins.updateConfig({
id: "<id>"
}) curl
curl --request PUT "${CADCAMFUN_URL}/api/plugins/<id>/config" \
--header "Authorization: Bearer ${CADCAMFUN_TOKEN}" \
--header "Content-Type: application/json" \
--data-binary @request.json جربه
plugins.enable يتطلب Authorization: Bearer <token>.
| اسم | في | يكتب | مطلوب |
|---|---|---|---|
| بطاقة تعريف | طريق | خيط | مطلوب |
200 هدف application/json
{ message: string }
400 PluginBadRequestEncoded application/json
PluginBadRequestEncoded
401 UnauthorizedEncoded application/json
UnauthorizedEncoded
404 PluginNotFoundEncoded application/json
PluginNotFoundEncoded
500 KeyedInternalEncoded application/json
KeyedInternalEncoded
مثال SDK
import { CadCam } from "@cadcamfun/api/sdk"
const client = CadCam.make({
baseUrl: process.env.CADCAMFUN_URL!,
headers: { authorization: `Bearer ${process.env.CADCAMFUN_TOKEN}` },
})
// PluginsEnableInput
const result = await client.plugins.enable({
id: "<id>"
}) curl
curl --request POST "${CADCAMFUN_URL}/api/plugins/<id>/enable" \
--header "Authorization: Bearer ${CADCAMFUN_TOKEN}" جربه
plugins.disable يتطلب Authorization: Bearer <token>.
| اسم | في | يكتب | مطلوب |
|---|---|---|---|
| بطاقة تعريف | طريق | خيط | مطلوب |
200 هدف application/json
{ message: string }
400 PluginBadRequestEncoded application/json
PluginBadRequestEncoded
401 UnauthorizedEncoded application/json
UnauthorizedEncoded
404 PluginNotFoundEncoded application/json
PluginNotFoundEncoded
500 KeyedInternalEncoded application/json
KeyedInternalEncoded
مثال SDK
import { CadCam } from "@cadcamfun/api/sdk"
const client = CadCam.make({
baseUrl: process.env.CADCAMFUN_URL!,
headers: { authorization: `Bearer ${process.env.CADCAMFUN_TOKEN}` },
})
// PluginsDisableInput
const result = await client.plugins.disable({
id: "<id>"
}) curl
curl --request POST "${CADCAMFUN_URL}/api/plugins/<id>/disable" \
--header "Authorization: Bearer ${CADCAMFUN_TOKEN}" جربه
plugins.update يتطلب Authorization: Bearer <token>.
| اسم | في | يكتب | مطلوب |
|---|---|---|---|
| بطاقة تعريف | طريق | خيط | مطلوب |
{ manifest?: { id: string name: string version: string description: string author: string repository?: string | null license?: string | null icon?: string | null main: string engines: { cadcam: string } permissions: Array<"model:read" | "model:write" | "model:selection" | "ui:sidebar" | "ui:toolbar" | "ui:contextMenu" | "ui:propertyPanel" | "ui:modal" | "ui:overlay" | "storage:local" | "storage:sync" | "file:read" | "file:write" | "file:downloads" | "network:origin" | "network:external" | "system:clipboard" | "system:notifications" | "ui:fullscreen" | "device:camera" | "device:microphone"> dependencies?: { [key: string]: string } | null contributes?: { sidebar?: { title: string icon: string entry: string } | null commands?: Array<{ id: string title: string icon?: string | null keybinding?: string | null }> | null menus?: { toolbar?: Array<{ command: string group?: string | null when?: string | null priority?: number | "Infinity" | "-Infinity" | "NaN" | null }> | null contextMenu?: Array<{ command: string group?: string | null } | null propertyPanel?: Array<{ id: string title: string entry: string appliesTo?: string | null themes?: Array<{ id: string label: string path: string }> | null } | null configuration?: { properties: { [key: string]: { type: string default?: unknown | null description?: string | null enum?: unknown[] | null minimum?: number | null maximum?: number | null pattern?: string | null } } } | null } | null config?: object | null }
200 هدف application/json
{ id: string manifest: { id: string name: string version: string description: string author: string repository?: string | null license?: string | null icon?: string | null main: string engines: { cadcam: string } permissions: Array<"model:read" | "model:write" | "model:selection" | "ui:sidebar" | "ui:toolbar" | "ui:contextMenu" | "ui:propertyPanel" | "ui:modal" | "ui:overlay" | "storage:local" | "storage:sync" | "file:read" | "file:write" | "file:downloads" | "network:origin" | "network:external" | "system:clipboard" | "system:notifications" | "ui:fullscreen" | "device:camera" | "device:microphone"> dependencies?: { [key: string]: string } | null contributes?: { sidebar?: { title: string icon: string entry: string } | null commands?: Array<{ id: string title: string icon?: string | null keybinding?: string | null }> | null menus?: { toolbar?: Array<{ command: string group?: string | null when?: string | null priority?: number | "Infinity" | "-Infinity" | "NaN" | null }> | null contextMenu?: Array<{ command: string group?: string | null } | null propertyPanel?: Array<{ id: string title: string entry: string appliesTo?: string | null themes?: Array<{ id: string label: string path: string }> | null } | null configuration?: { properties: { [key: string]: { type: string default?: unknown | null description?: string | null enum?: unknown[] | null minimum?: number | "Infinity" | "-Infinity" | "NaN" | null maximum?: number | null pattern?: string | null } } } | null } state: "none" | "installed" | "enabled" | "disabled" | "loaded" | "activated" | "deactivated" | "error" enabled: boolean version: string installedAt: string updatedAt: string config?: object | null configurationId?: string | null errorCount: number | "Infinity" | "-Infinity" | "NaN" lastError?: string | null }
400 PluginBadRequestEncoded application/json
PluginBadRequestEncoded
401 UnauthorizedEncoded application/json
UnauthorizedEncoded
404 PluginNotFoundEncoded application/json
PluginNotFoundEncoded
500 KeyedInternalEncoded application/json
KeyedInternalEncoded
مثال SDK
import { CadCam } from "@cadcamfun/api/sdk"
const client = CadCam.make({
baseUrl: process.env.CADCAMFUN_URL!,
headers: { authorization: `Bearer ${process.env.CADCAMFUN_TOKEN}` },
})
// PluginsUpdateInput
const result = await client.plugins.update({
id: "<id>",
manifest: {
id: "",
name: "",
version: "",
description: "",
author: "",
main: "",
engines: {
cadcam: ""
},
permissions: [
"model:read"
]
},
config: {}
}) curl
curl --request PUT "${CADCAMFUN_URL}/api/plugins/<id>/update" \
--header "Authorization: Bearer ${CADCAMFUN_TOKEN}" \
--header "Content-Type: application/json" \
--data-binary @request.json جربه
plugins.patch يتطلب Authorization: Bearer <token>.
| اسم | في | يكتب | مطلوب |
|---|---|---|---|
| بطاقة تعريف | طريق | خيط | مطلوب |
{ manifest?: { id: string name: string version: string description: string author: string repository?: string | null license?: string | null icon?: string | null main: string engines: { cadcam: string } permissions: Array<"model:read" | "model:write" | "model:selection" | "ui:sidebar" | "ui:toolbar" | "ui:contextMenu" | "ui:propertyPanel" | "ui:modal" | "ui:overlay" | "storage:local" | "storage:sync" | "file:read" | "file:write" | "file:downloads" | "network:origin" | "network:external" | "system:clipboard" | "system:notifications" | "ui:fullscreen" | "device:camera" | "device:microphone"> dependencies?: { [key: string]: string } | null contributes?: { sidebar?: { title: string icon: string entry: string } | null commands?: Array<{ id: string title: string icon?: string | null keybinding?: string | null }> | null menus?: { toolbar?: Array<{ command: string group?: string | null when?: string | null priority?: number | "Infinity" | "-Infinity" | "NaN" | null }> | null contextMenu?: Array<{ command: string group?: string | null } | null propertyPanel?: Array<{ id: string title: string entry: string appliesTo?: string | null themes?: Array<{ id: string label: string path: string }> | null } | null configuration?: { properties: { [key: string]: { type: string default?: unknown | null description?: string | null enum?: unknown[] | null minimum?: number | null maximum?: number | null pattern?: string | null } } } | null } | null config?: object | null }
200 هدف application/json
{ id: string manifest: { id: string name: string version: string description: string author: string repository?: string | null license?: string | null icon?: string | null main: string engines: { cadcam: string } permissions: Array<"model:read" | "model:write" | "model:selection" | "ui:sidebar" | "ui:toolbar" | "ui:contextMenu" | "ui:propertyPanel" | "ui:modal" | "ui:overlay" | "storage:local" | "storage:sync" | "file:read" | "file:write" | "file:downloads" | "network:origin" | "network:external" | "system:clipboard" | "system:notifications" | "ui:fullscreen" | "device:camera" | "device:microphone"> dependencies?: { [key: string]: string } | null contributes?: { sidebar?: { title: string icon: string entry: string } | null commands?: Array<{ id: string title: string icon?: string | null keybinding?: string | null }> | null menus?: { toolbar?: Array<{ command: string group?: string | null when?: string | null priority?: number | "Infinity" | "-Infinity" | "NaN" | null }> | null contextMenu?: Array<{ command: string group?: string | null } | null propertyPanel?: Array<{ id: string title: string entry: string appliesTo?: string | null themes?: Array<{ id: string label: string path: string }> | null } | null configuration?: { properties: { [key: string]: { type: string default?: unknown | null description?: string | null enum?: unknown[] | null minimum?: number | "Infinity" | "-Infinity" | "NaN" | null maximum?: number | null pattern?: string | null } } } | null } state: "none" | "installed" | "enabled" | "disabled" | "loaded" | "activated" | "deactivated" | "error" enabled: boolean version: string installedAt: string updatedAt: string config?: object | null configurationId?: string | null errorCount: number | "Infinity" | "-Infinity" | "NaN" lastError?: string | null }
400 PluginBadRequestEncoded application/json
PluginBadRequestEncoded
401 UnauthorizedEncoded application/json
UnauthorizedEncoded
404 PluginNotFoundEncoded application/json
PluginNotFoundEncoded
500 KeyedInternalEncoded application/json
KeyedInternalEncoded
مثال SDK
import { CadCam } from "@cadcamfun/api/sdk"
const client = CadCam.make({
baseUrl: process.env.CADCAMFUN_URL!,
headers: { authorization: `Bearer ${process.env.CADCAMFUN_TOKEN}` },
})
// PluginsPatchInput
const result = await client.plugins.patch({
id: "<id>",
manifest: {
id: "",
name: "",
version: "",
description: "",
author: "",
main: "",
engines: {
cadcam: ""
},
permissions: [
"model:read"
]
},
config: {}
}) curl
curl --request PATCH "${CADCAMFUN_URL}/api/plugins/<id>/update" \
--header "Authorization: Bearer ${CADCAMFUN_TOKEN}" \
--header "Content-Type: application/json" \
--data-binary @request.json جربه
/api/plugins/registry
plugins.registry يتطلب Authorization: Bearer <token>.
200 صفيف <كائن> application/json
Array<{ id: string name: string version: string description: string author: string entryPoint: string homepage?: string | null repository?: string | null dependencies: { [key: string]: string } permissions: string[] extensionPoints: string[] minAppVersion: string maxAppVersion?: string | null }>
401 UnauthorizedEncoded application/json
UnauthorizedEncoded
500 KeyedInternalEncoded application/json
KeyedInternalEncoded
رد المثال تم الالتقاط · 200
[] مثال SDK
import { CadCam } from "@cadcamfun/api/sdk"
const client = CadCam.make({
baseUrl: process.env.CADCAMFUN_URL!,
headers: { authorization: `Bearer ${process.env.CADCAMFUN_TOKEN}` },
})
// no input
const result = await client.plugins.registry() curl
curl --request GET "${CADCAMFUN_URL}/api/plugins/registry" \
--header "Authorization: Bearer ${CADCAMFUN_TOKEN}" جربه
plugins.registryGet يتطلب Authorization: Bearer <token>.
| اسم | في | يكتب | مطلوب |
|---|---|---|---|
| بطاقة تعريف | طريق | خيط | مطلوب |
200 هدف application/json
{ id: string name: string version: string description: string author: string entryPoint: string homepage?: string | null repository?: string | null dependencies: { [key: string]: string } permissions: string[] extensionPoints: string[] minAppVersion: string maxAppVersion?: string | null }
400 PluginBadRequestEncoded application/json
PluginBadRequestEncoded
401 UnauthorizedEncoded application/json
UnauthorizedEncoded
404 PluginNotFoundEncoded application/json
PluginNotFoundEncoded
500 KeyedInternalEncoded application/json
KeyedInternalEncoded
مثال SDK
import { CadCam } from "@cadcamfun/api/sdk"
const client = CadCam.make({
baseUrl: process.env.CADCAMFUN_URL!,
headers: { authorization: `Bearer ${process.env.CADCAMFUN_TOKEN}` },
})
// PluginsRegistryGetInput
const result = await client.plugins.registryGet({
id: "<id>"
}) curl
curl --request GET "${CADCAMFUN_URL}/api/plugins/registry/<id>" \
--header "Authorization: Bearer ${CADCAMFUN_TOKEN}" جربه
plugins.registrySearch يتطلب Authorization: Bearer <token>.
| اسم | في | يكتب | مطلوب |
|---|---|---|---|
| q | استفسار | خيط | مطلوب |
200 صفيف <كائن> application/json
Array<{ id: string name: string version: string description: string author: string entryPoint: string homepage?: string | null repository?: string | null dependencies: { [key: string]: string } permissions: string[] extensionPoints: string[] minAppVersion: string maxAppVersion?: string | null }>
400 PluginBadRequestEncoded application/json
PluginBadRequestEncoded
401 UnauthorizedEncoded application/json
UnauthorizedEncoded
500 KeyedInternalEncoded application/json
KeyedInternalEncoded
مثال SDK
import { CadCam } from "@cadcamfun/api/sdk"
const client = CadCam.make({
baseUrl: process.env.CADCAMFUN_URL!,
headers: { authorization: `Bearer ${process.env.CADCAMFUN_TOKEN}` },
})
// PluginsRegistrySearchInput
const result = await client.plugins.registrySearch({}) curl
curl --request GET "${CADCAMFUN_URL}/api/plugins/registry/search?q=<q>" \
--header "Authorization: Bearer ${CADCAMFUN_TOKEN}" جربه
المخططات
يمكن الوصول إلى المخططات المسماة من معلمات هذه المجموعة وأجسامها واستجاباتها. أ ? يمثل حقلاً اختياريًا؛ | null يضع علامة على الحقل الذي قد يكون موجودًا بقيمة فارغة.
KeyedInternalEncoded{ _tag: "KeyedInternal" error: string }
PluginBadRequestEncoded{ _tag: "PluginBadRequest" error: string details?: string[] | null }
PluginConflictEncoded{ _tag: "PluginConflict" error: string }
PluginNotFoundEncoded{ _tag: "PluginNotFound" error: string }
استدعاء هذه المجموعة
معرفات العملية لها النموذج plugins.<name>. وعد SDK الذي تم إنشاؤه (@cadcamfun/api/sdk) يعرض معظمهم client.<namespace>.<method>(input)، أين input هو كائن مسطح واحد من معلمات المسار وحقول النص؛ يُظهر مثال SDK لكل بطاقة الملحق الدقيق ونوع الإدخال. لا يتم إنشاء التحميلات متعددة الأجزاء والاستجابات الثنائية أو استجابات JavaScript وخطافات الويب الأولية؛ تظهر تلك البطاقات fetch بدلاً من ذلك.
import { CadCam, ClientError } from "@cadcamfun/api/sdk"
const client = CadCam.make({
baseUrl: process.env.CADCAMFUN_URL!,
headers: { authorization: `Bearer ${process.env.CADCAMFUN_TOKEN}` },
})
try {
await client.projects.list()
} catch (error) {
if (error instanceof ClientError) {
// Transport | UnexpectedStatus | UnsupportedContentType | MalformedResponse | SseEventTooLarge
} else {
// a declared error body: switch on error._tag
}
} استكشاف الأخطاء وإصلاحها
| أعراض | السبب المحتمل | يصلح |
|---|---|---|
| 401 في كل طلب | رمز مميز من إطلاق سابق، أو مفقود Bearer بادئة | يرسل Authorization: Bearer <token> بالرمز المميز الذي بدأت به السايدكار. |
| 400 قبل أن يحدث أي شيء | النص أو المعلمة لا يتطابقان مع المخطط | قارن الحمولة بمخطط الطلب الموجود على البطاقة. |
| 403 أو 404 لسجل يمكنك رؤيته في مكان آخر | حساب التمثيل يختلف | أرسل الحق x-session-tokenأو استخدم ملف التعريف المحلي الذي يملك السجل. |
| 409 | حالة متعارضة، مثل اسم مكرر أو رأس فرع قديم | أعد قراءة المورد وأعد المحاولة باستخدام البيانات الحالية. |
| جربه يقول "تم حظره بواسطة CORS" | يتم تقديم المستندات من أصل غير استرجاعي | قم بتشغيل المستندات محليًا أو انسخ الطلب كـ curly. |
| رفض اتصال | تم إعادة تشغيل السايدكار في منفذ جديد | قراءة المنفذ من الجديد ready سطر. |