Aller au contenu
CADCAMFUN
Docs

Documentation

Parcours d'outils du projet

Liste et création de parcours d'outils à l'échelle du projet avec des enveloppes de réponse spécifiques au point final.

Traduit automatiquement de l'anglais. Voir l'original en anglais

Playground

Envoyez ces demandes à votre propre sidecar en cours d’exécution. Les valeurs restent dans ce navigateur.

Non connecté
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

2 endpoints dans le projectToolpaths 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/projects/{id}/toolpaths projectToolpaths.list
poste /api/projects/{id}/toolpaths projectToolpaths.create
Projeter des opérations de parcours d'outils en 3D Faites glisser vers l'orbite · faites défiler pour zoomer · faites glisser vers la droite pour effectuer un panoramique
Un bloc par opération (2), empilé par section de ressources de cette page et coloré par méthode : vert GET, orange POST, bleu PUT, violet PATCH, rouge DELETE. Généré à partir du document OpenAPI au moment de la construction.

/api/projects

obtenir /api/projects/{id}/toolpaths # projectToolpaths.list

Nécessite Authorization: Bearer <token>.

Paramètres
NomDansTaperRequis
identifiant chemin chaîne requis
projectId requête chaîne | null facultatif
Réponses
200 objet application/json
{
  success: true
  data: unknown | null
  message?: string | null
}
400 EnvBadRequestEncoded application/json
EnvBadRequestEncoded
401 UnauthorizedEncoded application/json
UnauthorizedEncoded
403 EnvForbiddenEncoded application/json
EnvForbiddenEncoded
404 EnvNotFoundEncoded application/json
EnvNotFoundEncoded
405 EnvMethodNotAllowedEncoded application/json
EnvMethodNotAllowedEncoded
500 EnvInternalEncoded application/json
EnvInternalEncoded
Exemple de SDK
projectToolpaths.list
import { CadCam } from "@cadcamfun/api/sdk"

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

// ProjectToolpathsListInput
const result = await client.projectToolpaths.list({
  id: "<id>"
})
curl
GET /api/projects/{id}/toolpaths
curl --request GET "${CADCAMFUN_URL}/api/projects/<id>/toolpaths" \
  --header "Authorization: Bearer ${CADCAMFUN_TOKEN}"
Essayez-le
poste /api/projects/{id}/toolpaths # projectToolpaths.create

Nécessite Authorization: Bearer <token>.

Paramètres
NomDansTaperRequis
identifiant chemin chaîne requis
projectId requête chaîne | null facultatif
Corps de la requête · requis · application/json
{
  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
}
Réponses
200 objet application/json
{
  success: true
  data: unknown | null
  message?: string | null
}
400 EnvBadRequestEncoded application/json
EnvBadRequestEncoded
401 UnauthorizedEncoded application/json
UnauthorizedEncoded
403 EnvForbiddenEncoded application/json
EnvForbiddenEncoded
404 EnvNotFoundEncoded application/json
EnvNotFoundEncoded
405 EnvMethodNotAllowedEncoded application/json
EnvMethodNotAllowedEncoded
500 EnvInternalEncoded application/json
EnvInternalEncoded
récupérer un exemple
projectToolpaths.create
// Not generated in the Promise SDK (multipart, binary or raw body): call it with fetch.
const response = await fetch(`${process.env.CADCAMFUN_URL}/api/projects/${id}/toolpaths`, {
  method: "POST",
  headers: { authorization: `Bearer ${process.env.CADCAMFUN_TOKEN}` },
})
curl
POST /api/projects/{id}/toolpaths
curl --request POST "${CADCAMFUN_URL}/api/projects/<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.

EnvBadRequestEncoded
{
  _tag: "EnvBadRequest"
  success: false
  message: string
  errors: unknown | null
}
EnvForbiddenEncoded
{
  _tag: "EnvForbidden"
  success: false
  message: string
  errors: unknown | null
}
EnvInternalEncoded
{
  _tag: "EnvInternal"
  success: false
  message: string
  errors: unknown | null
}
EnvMethodNotAllowedEncoded
{
  _tag: "EnvMethodNotAllowed"
  success: false
  message: string
  errors: unknown | null
}
EnvNotFoundEncoded
{
  _tag: "EnvNotFound"
  success: false
  message: string
  errors: unknown | null
}
UnauthorizedEncoded
{
  _tag: "Unauthorized"
  message: string
}

Appel à ce groupe

Les identifiants d'opération ont la forme projectToolpaths.<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.

Erreurs du SDK Promise
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ômeCause probableRéparer
401 à chaque appelJeton d'un lancement précédent, ou manquant Bearer préfixeEnvoyer Authorization: Bearer <token> avec le jeton avec lequel le sidecar a été démarré.
400 avant que quoi que ce soit se produiseLe corps ou le paramètre ne correspond pas au schémaComparez la charge utile avec le schéma de demande sur la carte.
403 ou 404 sur un enregistrement visible ailleursLe compte intérimaire diffèreEnvoyez 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èteRelisez 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 bouclageExécutez la documentation localement ou copiez la demande en tant que curl.
Connexion rejetéeLe sidecar a redémarré sur un nouveau portLire le port du nouveau ready ligne.