सामग्री पर जाएँ
CADCAMFUN
दस्तावेज़

दस्तावेज़

प्लग-इन

प्लगइन रजिस्ट्री, पैकेज इंस्टॉलेशन, कॉन्फ़िगरेशन, सक्षम/अक्षम, और प्लगइन संपत्तियां प्रदान की गईं।

स्वचालित अनुवाद अभी उपलब्ध नहीं है; पाठ अंग्रेज़ी में है और इंटरफ़ेस आपकी भाषा में है। अंग्रेज़ी मूल देखें

प्लेग्राउंड

इन अनुरोधों को अपने स्वयं के चल रहे साइडकार को भेजें। मान इस ब्राउज़र में रहते हैं.

जुड़े नहीं हैं
यह कैसे काम करता है

साइडकार स्टार्टअप पर चुने गए लूपबैक पोर्ट पर सुनता है और इसे प्रिंट करता है ready रेखा; उस यूआरएल का उपयोग करें और CADCAMFUN_TOKEN इसकी शुरुआत की गई थी. अनुरोध सीधे इस पृष्ठ से उस पते पर जाते हैं।

साइडकार CORS हेडर को केवल टौरी मूल और तक भेजता है http://localhost या http://127.0.0.1 किसी भी बंदरगाह पर. होस्ट किए गए दस्तावेज़ों से ब्राउज़र प्रतिक्रिया को अवरुद्ध कर देता है, इसलिए दस्तावेज़ों को स्थानीय रूप से चलाएँ (bun run dev में packages/web) खेल के मैदान का उपयोग करने के लिए, या अनुरोध को कर्ल के रूप में कॉपी करें। वास्तविक डेटा को छुए बिना प्रयोग करने के लिए, साइडकार से शुरुआत करें CADCAMFUN_DATA_DIR एक बेकार निर्देशिका की ओर इशारा किया - देखें एपीआई वॉकथ्रू.

संचालन

16 एंडपॉइंट plugins समूह, साइडकार के स्वयं से उत्पन्न ओपनएपीआई दस्तावेज़. संरक्षित संचालन लेते हैं 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
3डी में प्लगइन्स संचालन कक्षा में खींचें · ज़ूम करने के लिए स्क्रॉल करें · पैन करने के लिए दाईं ओर खींचें
प्रति ऑपरेशन एक ब्लॉक (16), इस पृष्ठ के प्रति संसाधन अनुभाग को स्टैक्ड किया गया है और विधि के अनुसार रंगा गया है: हरा GET, नारंगी POST, नीला PUT, बैंगनी PATCH, लाल DELETE। निर्माण के समय OpenAPI दस्तावेज़ से उत्पन्न।

/api/plugins/install

डाक /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
उदाहरण लाओ
plugins.install
// 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

पाना /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
उदाहरण लाओ
plugins.bootstrap
// 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
/api/plugins/bootstrap.js प्राप्त करें
curl --request GET "${CADCAMFUN_URL}/api/plugins/bootstrap.js?id=<id>" \
  --header "Authorization: Bearer ${CADCAMFUN_TOKEN}"
इसे अजमाएं

/api/plugins/serve

पाना /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
उदाहरण लाओ
plugins.serve
// 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

पाना /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
/एपीआई/प्लगइन्स प्राप्त करें
[]
एसडीके उदाहरण
plugins.list
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}"
इसे अजमाएं
पाना /api/plugins/{id} # 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
एसडीके उदाहरण
plugins.get
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
/एपीआई/प्लगइन्स/{id} प्राप्त करें
curl --request GET "${CADCAMFUN_URL}/api/plugins/<id>" \
  --header "Authorization: Bearer ${CADCAMFUN_TOKEN}"
इसे अजमाएं
मिटाना /api/plugins/{id} # 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
एसडीके उदाहरण
plugins.uninstall
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
हटाएं /एपीआई/प्लगइन्स/{id}
curl --request DELETE "${CADCAMFUN_URL}/api/plugins/<id>" \
  --header "Authorization: Bearer ${CADCAMFUN_TOKEN}"
इसे अजमाएं
पाना /api/plugins/{id}/config # 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
एसडीके उदाहरण
plugins.getConfig
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
/api/plugins/{id}/config प्राप्त करें
curl --request GET "${CADCAMFUN_URL}/api/plugins/<id>/config" \
  --header "Authorization: Bearer ${CADCAMFUN_TOKEN}"
इसे अजमाएं
डाक /api/plugins/{id}/config # 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
एसडीके उदाहरण
plugins.setConfig
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
पोस्ट /एपीआई/प्लगइन्स/{id}/कॉन्फ़िगरेशन
curl --request POST "${CADCAMFUN_URL}/api/plugins/<id>/config" \
  --header "Authorization: Bearer ${CADCAMFUN_TOKEN}" \
  --header "Content-Type: application/json" \
  --data-binary @request.json
इसे अजमाएं
रखना /api/plugins/{id}/config # 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
एसडीके उदाहरण
plugins.updateConfig
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
/api/plugins/{id}/config डालें
curl --request PUT "${CADCAMFUN_URL}/api/plugins/<id>/config" \
  --header "Authorization: Bearer ${CADCAMFUN_TOKEN}" \
  --header "Content-Type: application/json" \
  --data-binary @request.json
इसे अजमाएं
डाक /api/plugins/{id}/enable # 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
एसडीके उदाहरण
plugins.enable
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
पोस्ट /एपीआई/प्लगइन्स/{id}/सक्षम करें
curl --request POST "${CADCAMFUN_URL}/api/plugins/<id>/enable" \
  --header "Authorization: Bearer ${CADCAMFUN_TOKEN}"
इसे अजमाएं
डाक /api/plugins/{id}/disable # 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
एसडीके उदाहरण
plugins.disable
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
पोस्ट/एपीआई/प्लगइन्स/{id}/अक्षम करें
curl --request POST "${CADCAMFUN_URL}/api/plugins/<id>/disable" \
  --header "Authorization: Bearer ${CADCAMFUN_TOKEN}"
इसे अजमाएं
रखना /api/plugins/{id}/update # 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
एसडीके उदाहरण
plugins.update
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
/api/plugins/{id}/अद्यतन डालें
curl --request PUT "${CADCAMFUN_URL}/api/plugins/<id>/update" \
  --header "Authorization: Bearer ${CADCAMFUN_TOKEN}" \
  --header "Content-Type: application/json" \
  --data-binary @request.json
इसे अजमाएं
पैबंद /api/plugins/{id}/update # 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
एसडीके उदाहरण
plugins.patch
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
पैच /एपीआई/प्लगइन्स/{id}/अपडेट
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

पाना /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
/एपीआई/प्लगइन्स/रजिस्ट्री प्राप्त करें
[]
एसडीके उदाहरण
plugins.registry
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}"
इसे अजमाएं
पाना /api/plugins/registry/{id} # 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
एसडीके उदाहरण
plugins.registryGet
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
प्राप्त करें /एपीआई/प्लगइन्स/रजिस्ट्री/{id}
curl --request GET "${CADCAMFUN_URL}/api/plugins/registry/<id>" \
  --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
}
UnauthorizedEncoded
{
  _tag: "Unauthorized"
  message: string
}

इस समूह को कॉल किया जा रहा है

ऑपरेशन आईडी का फॉर्म है plugins.<name>. जनरेट किया गया प्रॉमिस SDK (@cadcamfun/api/sdk) उनमें से अधिकांश को इस रूप में उजागर करता है client.<namespace>.<method>(input), कहाँ input पथ पैरामीटर और बॉडी फ़ील्ड की एक सपाट वस्तु है; प्रत्येक कार्ड का एसडीके उदाहरण सटीक एक्सेसर और इनपुट प्रकार दिखाता है। मल्टीपार्ट अपलोड, बाइनरी या जावास्क्रिप्ट प्रतिक्रियाएँ और कच्चे वेबहुक उत्पन्न नहीं होते हैं; वे कार्ड दिखाते हैं 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विरोधाभासी स्थिति, जैसे डुप्लिकेट नाम या पुराना शाखा प्रमुखसंसाधन को दोबारा पढ़ें और वर्तमान डेटा के साथ पुनः प्रयास करें।
कोशिश करें यह कहता है "सीओआरएस द्वारा अवरुद्ध"दस्तावेज़ गैर-लूपबैक मूल से परोसे जाते हैंदस्तावेज़ों को स्थानीय रूप से चलाएँ या अनुरोध को कर्ल के रूप में कॉपी करें।
कनेक्शन नहीं हो सकासाइडकार एक नए बंदरगाह पर फिर से शुरू हुईनए से पोर्ट पढ़ें ready पंक्ति.