تخطَّ إلى المحتوى
CADCAMFUN
الوثائق

الوثائق

الرسومات

رسومات المشروع وهندستها المحفوظة وبياناتها التعريفية وعمليات التحديث.

مترجم تلقائيًا من الإنجليزية. عرض الأصل بالإنجليزية

ساحة التجربة

أرسل هذه الطلبات إلى السايدكار الخاصة بك. تبقى القيم في هذا المتصفح.

غير متصل
كيف يعمل هذا

يستمع السايدكار إلى منفذ الاسترجاع الذي تم اختياره عند بدء التشغيل ويطبعه في منفذ الاسترجاع الخاص به ready خط؛ استخدم عنوان URL هذا و CADCAMFUN_TOKEN لقد بدأ مع. تذهب الطلبات مباشرة من هذه الصفحة إلى هذا العنوان.

يرسل السايدكار رؤوس CORS فقط إلى أصول Tauri وإلى http://localhost أو http://127.0.0.1 على أي منفذ. من المستندات المستضافة، يحظر المتصفح الاستجابة، لذا قم بتشغيل المستندات محليًا (bun run dev في packages/web) لاستخدام الملعب، أو نسخ الطلب كحليقة. للتجربة دون لمس البيانات الحقيقية، ابدأ تشغيل السايدكار باستخدام CADCAMFUN_DATA_DIR أشار إلى دليل مهمل - انظر إرشادات واجهة برمجة التطبيقات.

العمليات

7 نقاط نهاية في drawings المجموعة التي تم إنشاؤها من السايدكار مستند OpenAPI. تأخذ العمليات المحمية Authorization: Bearer $CADCAMFUN_TOKEN; يرى المصادقة. السلوك والحدود موجودة دليل النظام الفرعي.

يحصل /api/drawings/{id} drawings.get
يضع /api/drawings/{id} drawings.update
يمسح /api/drawings/{id} drawings.remove
يحصل /api/drawings/{id}/versions drawings.versions
بريد /api/drawings/{id}/versions/{versionId}/restore drawings.restoreVersion
يحصل /api/projects/{id}/drawings drawings.listForProject
بريد /api/projects/{id}/drawings drawings.createForProject
عمليات الرسومات في 3د اسحب إلى المدار · قم بالتمرير للتكبير · اسحب بزر الماوس الأيمن للتحريك
كتلة واحدة لكل عملية (7)، مكدسة لكل قسم موارد في هذه الصفحة وملونة حسب الطريقة: GET الأخضر، POST البرتقالي، PUT الأزرق، PATCH البنفسجي، DELETE الأحمر. تم إنشاؤها من مستند OpenAPI في وقت الإنشاء.

/api/drawings

يحصل /api/drawings/{id} # drawings.get

يتطلب Authorization: Bearer <token>.

حدود
اسمفييكتبمطلوب
بطاقة تعريف طريق خيط مطلوب
الردود
200 هدف application/json
{
  id: string
  name: string
  description: string | null
  data: unknown
  thumbnail: string | null
  createdAt: string
  updatedAt: string
  projectId: string
  project: {
    id: string
    name: string
    ownerId: string
    organization: {
      id: string
      users: Array<{
        role: string
      }>
    } | null
  }
}
400 BadRequestEncoded application/json
BadRequestEncoded
401 UnauthorizedEncoded application/json
UnauthorizedEncoded
403 ForbiddenEncoded application/json
ForbiddenEncoded
404 NotFoundEncoded application/json
NotFoundEncoded
500 InternalErrorEncoded application/json
InternalErrorEncoded
مثال SDK
drawings.get
import { CadCam } from "@cadcamfun/api/sdk"

const client = CadCam.make({
  baseUrl: process.env.CADCAMFUN_URL!,
  headers: { authorization: `Bearer ${process.env.CADCAMFUN_TOKEN}` },
})

// DrawingsGetInput
const result = await client.drawings.get({
  id: "<id>"
})
curl
الحصول على /api/drawings/{id}
curl --request GET "${CADCAMFUN_URL}/api/drawings/<id>" \
  --header "Authorization: Bearer ${CADCAMFUN_TOKEN}"
جربه
يضع /api/drawings/{id} # drawings.update

يتطلب Authorization: Bearer <token>.

حدود
اسمفييكتبمطلوب
بطاقة تعريف طريق خيط مطلوب
نص الطلب · مطلوب · application/json
{
  name?: string | null
  description?: string | null
  data?: unknown | null
  thumbnail?: string | null
  baseUpdatedAt?: string | null
  mergeData?: boolean | null
}
الردود
200 هدف application/json
{
  id: string
  name: string
  description: string | null
  data: unknown
  thumbnail: string | null
  createdAt: string
  updatedAt: string
  projectId: string
}
400 BadRequestEncoded application/json
BadRequestEncoded
401 UnauthorizedEncoded application/json
UnauthorizedEncoded
403 ForbiddenEncoded application/json
ForbiddenEncoded
404 NotFoundEncoded application/json
NotFoundEncoded
409 ConflictEncoded application/json
ConflictEncoded
500 InternalErrorEncoded application/json
InternalErrorEncoded
مثال SDK
drawings.update
import { CadCam } from "@cadcamfun/api/sdk"

const client = CadCam.make({
  baseUrl: process.env.CADCAMFUN_URL!,
  headers: { authorization: `Bearer ${process.env.CADCAMFUN_TOKEN}` },
})

// DrawingsUpdateInput
const result = await client.drawings.update({
  id: "<id>",
  name: "",
  description: "",
  data: null,
  thumbnail: "",
  baseUpdatedAt: "",
  mergeData: false
})
curl
ضع /api/drawings/{id}
curl --request PUT "${CADCAMFUN_URL}/api/drawings/<id>" \
  --header "Authorization: Bearer ${CADCAMFUN_TOKEN}" \
  --header "Content-Type: application/json" \
  --data-binary @request.json
جربه
يمسح /api/drawings/{id} # drawings.remove

يتطلب Authorization: Bearer <token>.

حدود
اسمفييكتبمطلوب
بطاقة تعريف طريق خيط مطلوب
الردود
200 هدف application/json
{
  message: string
}
400 BadRequestEncoded application/json
BadRequestEncoded
401 UnauthorizedEncoded application/json
UnauthorizedEncoded
403 ForbiddenEncoded application/json
ForbiddenEncoded
404 NotFoundEncoded application/json
NotFoundEncoded
500 InternalErrorEncoded application/json
InternalErrorEncoded
مثال SDK
drawings.remove
import { CadCam } from "@cadcamfun/api/sdk"

const client = CadCam.make({
  baseUrl: process.env.CADCAMFUN_URL!,
  headers: { authorization: `Bearer ${process.env.CADCAMFUN_TOKEN}` },
})

// DrawingsRemoveInput
const result = await client.drawings.remove({
  id: "<id>"
})
curl
حذف /api/drawings/{id}
curl --request DELETE "${CADCAMFUN_URL}/api/drawings/<id>" \
  --header "Authorization: Bearer ${CADCAMFUN_TOKEN}"
جربه
يحصل /api/drawings/{id}/versions # drawings.versions

يتطلب Authorization: Bearer <token>.

حدود
اسمفييكتبمطلوب
بطاقة تعريف طريق خيط مطلوب
الردود
200 صفيف <كائن> application/json
Array<{
  id: string
  version: number | "Infinity" | "-Infinity" | "NaN"
  createdAt: string
  elements: number | "Infinity" | "-Infinity" | "NaN"
}>
400 BadRequestEncoded application/json
BadRequestEncoded
401 UnauthorizedEncoded application/json
UnauthorizedEncoded
403 ForbiddenEncoded application/json
ForbiddenEncoded
404 NotFoundEncoded application/json
NotFoundEncoded
500 InternalErrorEncoded application/json
InternalErrorEncoded
جلب المثال
drawings.versions
// Not generated in the Promise SDK (multipart, binary or raw body): call it with fetch.
const response = await fetch(`${process.env.CADCAMFUN_URL}/api/drawings/${id}/versions`, {
  method: "GET",
  headers: { authorization: `Bearer ${process.env.CADCAMFUN_TOKEN}` },
})
curl
احصل على /api/drawings/{id}/versions
curl --request GET "${CADCAMFUN_URL}/api/drawings/<id>/versions" \
  --header "Authorization: Bearer ${CADCAMFUN_TOKEN}"
جربه
بريد /api/drawings/{id}/versions/{versionId}/restore # drawings.restoreVersion

يتطلب Authorization: Bearer <token>.

حدود
اسمفييكتبمطلوب
بطاقة تعريف طريق خيط مطلوب
versionId طريق خيط مطلوب
الردود
200 هدف application/json
{
  id: string
  name: string
  description: string | null
  data: unknown
  thumbnail: string | null
  createdAt: string
  updatedAt: string
  projectId: string
}
400 BadRequestEncoded application/json
BadRequestEncoded
401 UnauthorizedEncoded application/json
UnauthorizedEncoded
403 ForbiddenEncoded application/json
ForbiddenEncoded
404 NotFoundEncoded application/json
NotFoundEncoded
500 InternalErrorEncoded application/json
InternalErrorEncoded
جلب المثال
drawings.restoreVersion
// Not generated in the Promise SDK (multipart, binary or raw body): call it with fetch.
const response = await fetch(`${process.env.CADCAMFUN_URL}/api/drawings/${id}/versions/${versionId}/restore`, {
  method: "POST",
  headers: { authorization: `Bearer ${process.env.CADCAMFUN_TOKEN}` },
})
curl
POST /api/drawings/{id}/versions/{versionId}/restore
curl --request POST "${CADCAMFUN_URL}/api/drawings/<id>/versions/<versionId>/restore" \
  --header "Authorization: Bearer ${CADCAMFUN_TOKEN}"
جربه

/api/projects

يحصل /api/projects/{id}/drawings # drawings.listForProject

يتطلب Authorization: Bearer <token>.

حدود
اسمفييكتبمطلوب
بطاقة تعريف طريق خيط مطلوب
الردود
200 صفيف <كائن> application/json
Array<{
  id: string
  name: string
  description: string | null
  data: unknown
  thumbnail: string | null
  createdAt: string
  updatedAt: string
  projectId: string
}>
400 BadRequestEncoded application/json
BadRequestEncoded
401 UnauthorizedEncoded application/json
UnauthorizedEncoded
404 NotFoundEncoded application/json
NotFoundEncoded
500 InternalErrorEncoded application/json
InternalErrorEncoded
مثال SDK
drawings.listForProject
import { CadCam } from "@cadcamfun/api/sdk"

const client = CadCam.make({
  baseUrl: process.env.CADCAMFUN_URL!,
  headers: { authorization: `Bearer ${process.env.CADCAMFUN_TOKEN}` },
})

// DrawingsListForProjectInput
const result = await client.drawings.listForProject({
  id: "<id>"
})
curl
الحصول على /api/projects/{id}/drawings
curl --request GET "${CADCAMFUN_URL}/api/projects/<id>/drawings" \
  --header "Authorization: Bearer ${CADCAMFUN_TOKEN}"
جربه
بريد /api/projects/{id}/drawings # drawings.createForProject

يتطلب Authorization: Bearer <token>.

حدود
اسمفييكتبمطلوب
بطاقة تعريف طريق خيط مطلوب
نص الطلب · مطلوب · application/json
{
  name?: string | null
  description?: string | null
  data?: unknown | null
  thumbnail?: string | null
  baseUpdatedAt?: string | null
  mergeData?: boolean | null
}
الردود
201 هدف application/json
{
  id: string
  name: string
  description: string | null
  data: unknown
  thumbnail: string | null
  createdAt: string
  updatedAt: string
  projectId: string
}
400 BadRequestEncoded application/json
BadRequestEncoded
401 UnauthorizedEncoded application/json
UnauthorizedEncoded
404 NotFoundEncoded application/json
NotFoundEncoded
500 InternalErrorEncoded application/json
InternalErrorEncoded
مثال SDK
drawings.createForProject
import { CadCam } from "@cadcamfun/api/sdk"

const client = CadCam.make({
  baseUrl: process.env.CADCAMFUN_URL!,
  headers: { authorization: `Bearer ${process.env.CADCAMFUN_TOKEN}` },
})

// DrawingsCreateForProjectInput
const result = await client.drawings.createForProject({
  id: "<id>",
  name: "",
  description: "",
  data: null,
  thumbnail: "",
  baseUpdatedAt: "",
  mergeData: false
})
curl
POST /api/projects/{id}/drawings
curl --request POST "${CADCAMFUN_URL}/api/projects/<id>/drawings" \
  --header "Authorization: Bearer ${CADCAMFUN_TOKEN}" \
  --header "Content-Type: application/json" \
  --data-binary @request.json
جربه

المخططات

يمكن الوصول إلى المخططات المسماة من معلمات هذه المجموعة وأجسامها واستجاباتها. أ ? يمثل حقلاً اختياريًا؛ | null يضع علامة على الحقل الذي قد يكون موجودًا بقيمة فارغة.

BadRequestEncoded
{
  _tag: "BadRequest"
  message: string
}
ConflictEncoded
{
  _tag: "Conflict"
  message: string
}
ForbiddenEncoded
{
  _tag: "Forbidden"
  message: string
}
InternalErrorEncoded
{
  _tag: "InternalError"
  message: string
}
NotFoundEncoded
{
  _tag: "NotFound"
  message: string
}
UnauthorizedEncoded
{
  _tag: "Unauthorized"
  message: string
}

استدعاء هذه المجموعة

معرفات العملية لها النموذج drawings.<name>. وعد SDK الذي تم إنشاؤه (@cadcamfun/api/sdk) يعرض معظمهم client.<namespace>.<method>(input)، أين input هو كائن مسطح واحد من معلمات المسار وحقول النص؛ يُظهر مثال SDK لكل بطاقة الملحق الدقيق ونوع الإدخال. لا يتم إنشاء التحميلات متعددة الأجزاء والاستجابات الثنائية أو استجابات JavaScript وخطافات الويب الأولية؛ تظهر تلك البطاقات fetch بدلاً من ذلك.

أخطاء من Promise SDK
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 سطر.