Documentation
Parcours d'outils
Programmes d'usinage enregistrés, associations de dessins et documents de fabrication portables validés.
Traduit automatiquement de l'anglais. Voir l'original en anglais
Envoyez ces demandes à votre propre sidecar en cours d’exécution. Les valeurs restent dans ce navigateur.
Comment ça marche
Le sidecar écoute sur un port de bouclage choisi au démarrage et l'imprime dans son ready doubler; utilisez cette URL et le CADCAMFUN_TOKEN ça a commencé avec. Les demandes vont directement de cette page à cette adresse.
Le sidecar envoie les en-têtes CORS uniquement aux origines Tauri et à http://localhost ou http://127.0.0.1 sur n'importe quel port. À partir des documents hébergés, le navigateur bloque la réponse, exécutez donc les documents localement (bun run dev dans packages/web) pour utiliser le terrain de jeu, ou copiez la requête sous forme curl. Pour expérimenter sans toucher aux données réelles, démarrez le sidecar avec CADCAMFUN_DATA_DIR pointé vers un répertoire jetable — voir la procédure pas à pas de l'API.
Opérations
9 endpoints dans le toolpaths groupe, généré à partir du propre sidecar Document OpenAPI. Les opérations protégées prennent Authorization: Bearer $CADCAMFUN_TOKEN; voir authentification. Le comportement et les limites sont en place le guide du sous-système.
| obtenir | /api/toolpaths | toolpaths.list |
| poste | /api/toolpaths | toolpaths.create |
| obtenir | /api/toolpaths/{id} | toolpaths.get |
| mettre | /api/toolpaths/{id} | toolpaths.update |
| supprimer | /api/toolpaths/{id} | toolpaths.remove |
| obtenir | /api/toolpaths/{id}/setup-sheet | toolpaths.setupSheet |
| poste | /api/toolpaths/post-check | toolpaths.postCheck |
| obtenir | /api/drawings/{id}/toolpaths | toolpaths.listForDrawing |
| poste | /api/drawings/{id}/toolpaths | toolpaths.createForDrawing |
/api/toolpaths
toolpaths.list Nécessite Authorization: Bearer <token>.
| Nom | Dans | Taper | Requis |
|---|---|---|---|
| projectId | requête | chaîne | null | facultatif |
| taper | requête | chaîne | null | facultatif |
| operationType | requête | chaîne | null | facultatif |
| recherche | requête | chaîne | null | facultatif |
| publique | requête | chaîne | null | facultatif |
200 Tableau<objet> application/json
Array<{ id: string name: string description: string | null data: unknown type: string | null operationType: string | null gcode: string | null thumbnail: string | null isPublic: boolean projectId: string createdAt: string updatedAt: string createdBy: string drawingId: string | null materialId: string | null toolId: string | null machineConfigId: string | null }>
401 UnauthorizedEncoded application/json
UnauthorizedEncoded
500 InternalErrorEncoded application/json
InternalErrorEncoded
Exemple de réponse capturé · 200
[] Exemple de SDK
import { CadCam } from "@cadcamfun/api/sdk"
const client = CadCam.make({
baseUrl: process.env.CADCAMFUN_URL!,
headers: { authorization: `Bearer ${process.env.CADCAMFUN_TOKEN}` },
})
// ToolpathsListInput
const result = await client.toolpaths.list({}) curl
curl --request GET "${CADCAMFUN_URL}/api/toolpaths" \
--header "Authorization: Bearer ${CADCAMFUN_TOKEN}" Essayez-le
toolpaths.create Nécessite Authorization: Bearer <token>.
{ name?: string | null description?: string | null data?: unknown | null gcode?: string | null projectId?: string | null type?: string | null operationType?: string | null isPublic?: boolean | null thumbnail?: string | null materialId?: string | null machineConfigId?: string | null toolId?: string | null simulation?: unknown | null baseUpdatedAt?: string | null }
201 objet application/json
{ id: string name: string description: string | null data: unknown type: string | null operationType: string | null gcode: string | null thumbnail: string | null isPublic: boolean projectId: string createdAt: string updatedAt: string createdBy: string drawingId: string | null materialId: string | null toolId: string | null machineConfigId: 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
Exemple de SDK
import { CadCam } from "@cadcamfun/api/sdk"
const client = CadCam.make({
baseUrl: process.env.CADCAMFUN_URL!,
headers: { authorization: `Bearer ${process.env.CADCAMFUN_TOKEN}` },
})
// ToolpathsCreateInput
const result = await client.toolpaths.create({
name: "",
description: "",
data: null,
gcode: "",
projectId: "",
type: "",
operationType: "",
isPublic: false,
thumbnail: "",
materialId: "",
machineConfigId: "",
toolId: "",
simulation: null,
baseUpdatedAt: ""
}) curl
curl --request POST "${CADCAMFUN_URL}/api/toolpaths" \
--header "Authorization: Bearer ${CADCAMFUN_TOKEN}" \
--header "Content-Type: application/json" \
--data-binary @request.json Essayez-le
toolpaths.get Nécessite Authorization: Bearer <token>.
| Nom | Dans | Taper | Requis |
|---|---|---|---|
| identifiant | chemin | chaîne | requis |
200 objet application/json
{ id: string name: string description: string | null data: unknown type: string | null operationType: string | null gcode: string | null thumbnail: string | null isPublic: boolean projectId: string createdAt: string updatedAt: string createdBy: string drawingId: string | null materialId: string | null toolId: string | null machineConfigId: string | null project: { id: string name: string ownerId: string } }
400 BadRequestEncoded application/json
BadRequestEncoded
401 UnauthorizedEncoded application/json
UnauthorizedEncoded
404 NotFoundEncoded application/json
NotFoundEncoded
500 InternalErrorEncoded application/json
InternalErrorEncoded
Exemple de SDK
import { CadCam } from "@cadcamfun/api/sdk"
const client = CadCam.make({
baseUrl: process.env.CADCAMFUN_URL!,
headers: { authorization: `Bearer ${process.env.CADCAMFUN_TOKEN}` },
})
// ToolpathsGetInput
const result = await client.toolpaths.get({
id: "<id>"
}) curl
curl --request GET "${CADCAMFUN_URL}/api/toolpaths/<id>" \
--header "Authorization: Bearer ${CADCAMFUN_TOKEN}" Essayez-le
toolpaths.update Nécessite Authorization: Bearer <token>.
| Nom | Dans | Taper | Requis |
|---|---|---|---|
| identifiant | chemin | chaîne | requis |
{ name?: string | null description?: string | null data?: unknown | null gcode?: string | null projectId?: string | null type?: string | null operationType?: string | null isPublic?: boolean | null thumbnail?: string | null materialId?: string | null machineConfigId?: string | null toolId?: string | null simulation?: unknown | null baseUpdatedAt?: string | null }
200 objet application/json
{ id: string name: string description: string | null data: unknown type: string | null operationType: string | null gcode: string | null thumbnail: string | null isPublic: boolean projectId: string createdAt: string updatedAt: string createdBy: string drawingId: string | null materialId: string | null toolId: string | null machineConfigId: string | null message: 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
Exemple de SDK
import { CadCam } from "@cadcamfun/api/sdk"
const client = CadCam.make({
baseUrl: process.env.CADCAMFUN_URL!,
headers: { authorization: `Bearer ${process.env.CADCAMFUN_TOKEN}` },
})
// ToolpathsUpdateInput
const result = await client.toolpaths.update({
id: "<id>",
name: "",
description: "",
data: null,
gcode: "",
projectId: "",
type: "",
operationType: "",
isPublic: false,
thumbnail: "",
materialId: "",
machineConfigId: "",
toolId: "",
simulation: null,
baseUpdatedAt: ""
}) curl
curl --request PUT "${CADCAMFUN_URL}/api/toolpaths/<id>" \
--header "Authorization: Bearer ${CADCAMFUN_TOKEN}" \
--header "Content-Type: application/json" \
--data-binary @request.json Essayez-le
toolpaths.remove Nécessite Authorization: Bearer <token>.
| Nom | Dans | Taper | Requis |
|---|---|---|---|
| identifiant | chemin | chaîne | requis |
200 objet 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
Exemple de SDK
import { CadCam } from "@cadcamfun/api/sdk"
const client = CadCam.make({
baseUrl: process.env.CADCAMFUN_URL!,
headers: { authorization: `Bearer ${process.env.CADCAMFUN_TOKEN}` },
})
// ToolpathsRemoveInput
const result = await client.toolpaths.remove({
id: "<id>"
}) curl
curl --request DELETE "${CADCAMFUN_URL}/api/toolpaths/<id>" \
--header "Authorization: Bearer ${CADCAMFUN_TOKEN}" Essayez-le
toolpaths.setupSheet Nécessite Authorization: Bearer <token>.
| Nom | Dans | Taper | Requis |
|---|---|---|---|
| identifiant | chemin | chaîne | requis |
200 objet application/json
{ data: { title: string jobId: string release: "blocked" | "preview" | "verified-program" material: { name: string iso: string } machine: { name: string post: string } setup: { orientation: string workOffset: string origin: { x: number y: number z: number } stock: { x: number y: number z: number } } tools: Array<{ number: number id: string name: string kind: string diameter: number flutes: number fluteLength: number shankDiameter: number stickout: number holder?: string operations: string[] seconds: number }> operations: Array<{ index: number id: string name: string strategy: string status: "ok" | "failed" tool?: number seconds: number cutLength: number removedVolume: number rpm?: number feed?: number ap?: number ae?: number warnings: string[] }> totals: { tools: number operations: number cycleSeconds: number cuttingSeconds: number removedVolume: number } claims: Array<{ id: string status: string detail: string }> notes: string[] issues: Array<{ severity: string message: string }> identity: { job: string part: string nc: string algorithm: string } titleBlock?: { [key: string]: string | number } } html: string }
400 BadRequestEncoded application/json
BadRequestEncoded
401 UnauthorizedEncoded application/json
UnauthorizedEncoded
404 NotFoundEncoded application/json
NotFoundEncoded
500 InternalErrorEncoded application/json
InternalErrorEncoded
récupérer un exemple
// Not generated in the Promise SDK (multipart, binary or raw body): call it with fetch.
const response = await fetch(`${process.env.CADCAMFUN_URL}/api/toolpaths/${id}/setup-sheet`, {
method: "GET",
headers: { authorization: `Bearer ${process.env.CADCAMFUN_TOKEN}` },
}) curl
curl --request GET "${CADCAMFUN_URL}/api/toolpaths/<id>/setup-sheet" \
--header "Authorization: Bearer ${CADCAMFUN_TOKEN}" Essayez-le
/api/toolpaths/post-check
toolpaths.postCheck Nécessite Authorization: Bearer <token>.
{ definition: unknown sample?: boolean }
200 objet application/json
{ valid: boolean issues: Array<{ path: string message: string }> sample?: string }
400 BadRequestEncoded application/json
BadRequestEncoded
401 UnauthorizedEncoded application/json
UnauthorizedEncoded
500 InternalErrorEncoded application/json
InternalErrorEncoded
récupérer un exemple
// Not generated in the Promise SDK (multipart, binary or raw body): call it with fetch.
const response = await fetch(`${process.env.CADCAMFUN_URL}/api/toolpaths/post-check`, {
method: "POST",
headers: { authorization: `Bearer ${process.env.CADCAMFUN_TOKEN}` },
}) curl
curl --request POST "${CADCAMFUN_URL}/api/toolpaths/post-check" \
--header "Authorization: Bearer ${CADCAMFUN_TOKEN}" \
--header "Content-Type: application/json" \
--data-binary @request.json Essayez-le
/api/drawings
toolpaths.listForDrawing Nécessite Authorization: Bearer <token>.
| Nom | Dans | Taper | Requis |
|---|---|---|---|
| identifiant | chemin | chaîne | requis |
200 Tableau<objet> application/json
Array<{ id: string name: string description: string | null data: unknown type: string | null operationType: string | null gcode: string | null thumbnail: string | null isPublic: boolean projectId: string createdAt: string updatedAt: string createdBy: string drawingId: string | null materialId: string | null toolId: string | null machineConfigId: string | null Material: { id: string name: string } | null MachineConfig: { id: string name: string type: string } | null Tool: { id: string name: string type: string diameter: number | "Infinity" | "-Infinity" | "NaN" } | null }>
400 BadRequestEncoded application/json
BadRequestEncoded
401 UnauthorizedEncoded application/json
UnauthorizedEncoded
404 NotFoundEncoded application/json
NotFoundEncoded
500 InternalErrorEncoded application/json
InternalErrorEncoded
Exemple de SDK
import { CadCam } from "@cadcamfun/api/sdk"
const client = CadCam.make({
baseUrl: process.env.CADCAMFUN_URL!,
headers: { authorization: `Bearer ${process.env.CADCAMFUN_TOKEN}` },
})
// ToolpathsListForDrawingInput
const result = await client.toolpaths.listForDrawing({
id: "<id>"
}) curl
curl --request GET "${CADCAMFUN_URL}/api/drawings/<id>/toolpaths" \
--header "Authorization: Bearer ${CADCAMFUN_TOKEN}" Essayez-le
toolpaths.createForDrawing Nécessite Authorization: Bearer <token>.
| Nom | Dans | Taper | Requis |
|---|---|---|---|
| identifiant | chemin | chaîne | requis |
{ name?: string | null description?: string | null data?: unknown | null gcode?: string | null projectId?: string | null type?: string | null operationType?: string | null isPublic?: boolean | null thumbnail?: string | null materialId?: string | null machineConfigId?: string | null toolId?: string | null simulation?: unknown | null baseUpdatedAt?: string | null }
201 objet application/json
{ id: string name: string description: string | null data: unknown type: string | null operationType: string | null gcode: string | null thumbnail: string | null isPublic: boolean projectId: string createdAt: string updatedAt: string createdBy: string drawingId: string | null materialId: string | null toolId: string | null machineConfigId: 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
Exemple de SDK
import { CadCam } from "@cadcamfun/api/sdk"
const client = CadCam.make({
baseUrl: process.env.CADCAMFUN_URL!,
headers: { authorization: `Bearer ${process.env.CADCAMFUN_TOKEN}` },
})
// ToolpathsCreateForDrawingInput
const result = await client.toolpaths.createForDrawing({
id: "<id>",
name: "",
description: "",
data: null,
gcode: "",
projectId: "",
type: "",
operationType: "",
isPublic: false,
thumbnail: "",
materialId: "",
machineConfigId: "",
toolId: "",
simulation: null,
baseUpdatedAt: ""
}) curl
curl --request POST "${CADCAMFUN_URL}/api/drawings/<id>/toolpaths" \
--header "Authorization: Bearer ${CADCAMFUN_TOKEN}" \
--header "Content-Type: application/json" \
--data-binary @request.json Essayez-le
Schémas
Schémas nommés accessibles à partir des paramètres, des corps et des réponses de ce groupe. UN ? marque un champ facultatif ; | null marque un champ qui peut être présent avec une valeur nulle.
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 }
Appel à ce groupe
Les identifiants d'opération ont la forme toolpaths.<name>. Le SDK Promise généré (@cadcamfun/api/sdk) expose la plupart d'entre eux comme client.<namespace>.<method>(input), où input est un objet plat composé de paramètres de chemin et de champs de corps ; L'exemple de SDK de chaque carte montre l'accesseur exact et le type d'entrée. Les téléchargements en plusieurs parties, les réponses binaires ou JavaScript et les webhooks bruts ne sont pas générés ; ces cartes montrent fetch à la place.
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
}
} Dépannage
| Symptôme | Cause probable | Réparer |
|---|---|---|
| 401 à chaque appel | Jeton d'un lancement précédent, ou manquant Bearer préfixe | Envoyer Authorization: Bearer <token> avec le jeton avec lequel le sidecar a été démarré. |
| 400 avant que quoi que ce soit se produise | Le corps ou le paramètre ne correspond pas au schéma | Comparez la charge utile avec le schéma de demande sur la carte. |
| 403 ou 404 sur un enregistrement visible ailleurs | Le compte intérimaire diffère | Envoyez le droit x-session-token, ou utilisez le profil local propriétaire de l'enregistrement. |
| 409 | État conflictuel, tel qu'un nom en double ou un chef de succursale obsolète | Relisez la ressource et réessayez avec les données actuelles. |
| Essayez, il est écrit "bloqué par CORS" | Les documents sont servis à partir d'une origine sans bouclage | Exécutez la documentation localement ou copiez la demande en tant que curl. |
| Connexion rejetée | Le sidecar a redémarré sur un nouveau port | Lire le port du nouveau ready ligne. |