दस्तावेज़
एपीआई संदर्भ
संपूर्ण HTTP संसाधन संदर्भ, प्रमाणित स्थानीय पहुंच, स्ट्रीमिंग अनुबंध और साझा स्कीमा से उत्पन्न क्लाइंट।
स्वचालित अनुवाद अभी उपलब्ध नहीं है; पाठ अंग्रेज़ी में है और इंटरफ़ेस आपकी भाषा में है। अंग्रेज़ी मूल देखें
सिंहावलोकन
साइडकार एक एकल प्रभाव है HttpApi. प्रत्येक समापनबिंदु एक टाइप किया हुआ है HttpApiEndpoint स्कीमा-चेक किए गए अनुरोध और प्रतिक्रिया निकायों के साथ, इसलिए यह संदर्भ, जेनरेट किया गया एसडीके और रनिंग सर्वर एक ही घोषणा से आते हैं packages/api.
संपूर्ण 232 पथों और 35 संसाधन समूहों में।
अनुरोध, प्रतिक्रिया और त्रुटि आकार, प्रत्येक इसका उपयोग करने वाले संचालन से जुड़े हुए हैं।
साइडकार द्वारा उत्सर्जित /api/openapi.json; स्नैपशॉट में packages/web द्वारा जाँच की जाती है bun run check:api-reference.
डेस्कटॉप वेबव्यू, मोबाइल कंपेनियन, एआई ब्रिज और स्क्रिप्ट सभी इन्हीं मार्गों को कॉल करते हैं।
आधार यूआरएल
कोई होस्ट किया गया CADCAMFUN API नहीं है। साइडकार आपकी मशीन पर चलती है, बांधती है 127.0.0.1 ऑपरेटिंग सिस्टम जिस पोर्ट को चुनता है (यह पोर्ट 0 पर सुनता है), उसकी स्वयं जांच करता है /api/health, और उसके बाद ही stdout पर एक JSON लाइन प्रिंट करता है। आधार यूआरएल है http://127.0.0.1:<port> उस पंक्ति से.
export CADCAMFUN_TOKEN=dev-token
CADCAMFUN_DATA_DIR=$(mktemp -d) \
CADCAMFUN_MIGRATIONS_DIR=$PWD/packages/db/drizzle \
CADCAMFUN_AI_OFFLINE=true \
bun --no-env-file apps/sidecar/src/main.ts
# stdout: {"event":"ready","port":46709}
export CADCAMFUN_URL=http://127.0.0.1:46709 प्रत्येक लॉन्च पर पोर्ट बदलता है
ready एक निश्चित संख्या मानने के बजाय लाइन (डेस्कटॉप शेल बिल्कुल यही करता है)। लॉग stderr पर जाते हैं इसलिए stdout केवल तैयार या त्रुटि ईवेंट ले जाता है। प्रमाणीकरण
अनुबंध एक सुरक्षा योजना की घोषणा करता है, bearer (HTTP Bearer). 324 में से 325 संचालन के लिए इसकी आवश्यकता होती है; केवल GET /api/health सार्वजनिक है.
| क्रेडेंशियल | के रूप में भेजा गया | द्वारा उपयोग किया जाता है |
|---|---|---|
| टोकन लॉन्च करें | Authorization: Bearer <token> | डेस्कटॉप वेबव्यू और स्थानीय स्क्रिप्ट; का मान है CADCAMFUN_TOKEN. |
| साथी टोकन | Authorization: Bearer <token> | एक युग्मित फ़ोन; संकीर्ण पहुंच, देखें साथी जोड़ी. |
| खाता सत्र | x-session-token | वाहक टोकन के शीर्ष पर अभिनय खाते का चयन करता है; देखना पहचान नीचे। |
curl -s "$CADCAMFUN_URL/api/health"
curl -s "$CADCAMFUN_URL/api/projects" -H "Authorization: Bearer $CADCAMFUN_TOKEN" कन्वेंशनों
- JSON अंदर, JSON बाहर। शव हैं
application/jsonजब तक कोई कार्ड अन्यथा न कहे: दो मल्टीपार्ट अपलोड, एक ऑक्टेट-स्ट्रीम वेबहुक, एक जावास्क्रिप्ट बूटस्ट्रैप, एक ज़िप डाउनलोड, एक बाइनरी प्लगइन फ़ाइल और दो इवेंट स्ट्रीम। - ऑपरेशन आईडी बिंदीदार हैं.
projects.get,vcs.commit: समूह टैग, एक बिंदु, जेनरेट किए गए क्लाइंट द्वारा उपयोग की जाने वाली विधि का नाम। - त्रुटियां टाइप हो गई हैं. विफलताएँ प्रति समापन बिंदु घोषित की जाती हैं और a ले जाती हैं
_tag; संदेशों को पार्स करने के बजाय इसे चालू करें। पूरे अनुबंध में, 401 को 269 परिचालन पर, 500 को 264 पर और 400 को 206 पर घोषित किया जाता है। - ऑपरेशन एंकर स्थिर हैं. प्रत्येक कार्ड इस प्रकार लिंक करने योग्य है
#op-<method>-<path>, उदाहरण के लिए/docs/api/projects#op-get-api-projects-id.
स्ट्रीमिंग
| पथ | आकार | किया जाता है |
|---|---|---|
GET /api/projects/{id}/events | एसएसई | एक प्रोजेक्ट के लिए इवेंट बदलें. |
POST /api/ai/chat/stream | एसएसई | जैसे ही इसका उत्पादन होता है, सहायक आउटपुट, साथ ही दिल की धड़कन; देखना एआई स्ट्रीमिंग. |
curl -N "$CADCAMFUN_URL/api/projects/$PROJECT_ID/events" \
-H "Authorization: Bearer $CADCAMFUN_TOKEN" ग्राहकों
@cadcamfun/api/sdk इसी अनुबंध से उत्पन्न होता है: नीचे दी गई प्रत्येक ऑपरेशन आईडी एक टाइप की गई विधि है CadCam.make(...), पथ पैरामीटर और बॉडी फ़ील्ड का एक फ्लैट इनपुट लेना। 259 में से 325 ऑपरेशन उत्पन्न होते हैं; प्रत्येक कार्ड अपनी सटीक कॉल दिखाता है।
import { CadCam } from "@cadcamfun/api/sdk"
const client = CadCam.make({
baseUrl: process.env.CADCAMFUN_URL!,
headers: { authorization: `Bearer ${process.env.CADCAMFUN_TOKEN}` },
})
const projects = await client.projects.list()
const created = await client.projects.create({ name: "Bracket" }) संसाधन
325 operations in 35 groups, arranged by what they serve.
मुख्य
1 endpointsस्थिति और टाइमस्टैम्प के साथ सार्वजनिक प्रक्रिया स्वास्थ्य जांच।
2 endpointsमूल ग्राहकों द्वारा उपयोग की जाने वाली प्रमाणित तैयारी और एप्लिकेशन संस्करण।
2 endpointsलाइव क्लाइंट के लिए प्रोजेक्ट-स्कोप्ड सर्वर-भेजे गए इवेंट।
4 endpointsउपसर्ग सूची और प्रति-कुंजी संचालन के साथ JSON-संगत प्राथमिकता और संदर्भ प्रविष्टियाँ।
2 endpointsएंडपॉइंट-विशिष्ट पेलोड और प्रतिक्रिया एन्कोडिंग के साथ अपलोड और डाउनलोड संचालन।
डिज़ाइन
5 endpointsस्वामी और संगठन पहुंच जांच के साथ प्रोजेक्ट बनाएं, सूचीबद्ध करें, पढ़ें, अपडेट करें और हटाएं।
8 endpointsसहयोगी ग्राहकों के लिए केवल पढ़ने योग्य प्रोजेक्ट चित्र, घटक, टूलपाथ, लाइब्रेरी संसाधन और सीमित पूर्वावलोकन।
7 endpointsप्रोजेक्ट चित्र और उनकी सहेजी गई ज्यामिति, मेटाडेटा और अद्यतन संचालन।
5 endpointsपुन: प्रयोज्य परियोजना घटक और उनका स्थायी डिज़ाइन डेटा।
5 endpointsसटीक ज्यामिति का विश्लेषण करें, STEP निर्यात करें, और दृश्य स्नैपशॉट या सहेजे गए चित्रों से असेंबली संबंधों का निरीक्षण करें।
8 endpointsसाझा लाइब्रेरी रिकॉर्ड और घटक, सामग्री और टूल लुकअप संग्रह।
उत्पादन
9 endpointsसहेजे गए मशीनिंग कार्यक्रम, ड्राइंग एसोसिएशन और मान्य पोर्टेबल विनिर्माण दस्तावेज़।
2 endpointsप्रोजेक्ट-स्कोप्ड टूलपाथ लिस्टिंग और एंडपॉइंट-विशिष्ट प्रतिक्रिया लिफाफे के साथ निर्माण।
5 endpointsमूल निर्माण, सेटिंग्स-संचालित जी-कोड पीढ़ी, सुझाव, पार्सिंग और रीप्ले सत्यापन।
8 endpointsटूलपाथ संस्करण, पुनर्स्थापना, लाइब्रेरी खोज, और थ्रेडेड प्रोग्राम टिप्पणियाँ।
21 endpointsअनुमान, गणना अनुरोध, सामग्री लागत, संचालन लागत और उपकरण-पहनने के रिकॉर्ड।
संसाधन
5 endpointsसामग्री रिकॉर्ड, एप्लिकेशन मशीनिंग गुण और संसाधन पहुंच।
5 endpointsलाइब्रेरी इंटरचेंज के लिए सामग्री भंडारण अनुलग्नक और JSON आयात/निर्यात।
5 endpointsएप्लिकेशन मशीनिंग वर्कफ़्लोज़ द्वारा उपयोग किए जाने वाले कटर रिकॉर्ड और आयाम।
7 endpointsउपकरण भंडारण डेटा और संग्रह या प्रति-उपकरण आयात/निर्यात।
7 endpointsमशीन कॉन्फ़िगरेशन रिकॉर्ड, अपडेट, निष्कासन और क्लोनिंग।
5 endpointsमशीन भंडारण अनुलग्नक और कॉन्फ़िगरेशन आयात/निर्यात।
एक्सटेंशन
52 endpointsप्रदाता, क्रेडेंशियल, वार्तालाप, स्ट्रीमिंग टर्न, एक्शन इनवोकेशन, ब्रिज टोकन, कौशल और सत्र पुनर्प्राप्ति।
22 endpointsप्रोजेक्ट गिट-संगत कमिट, शाखाएं, पुनर्स्थापना, समीक्षा, गिटहब मिररिंग और वर्कफ़्लो प्रेषण।
16 endpointsप्लगइन रजिस्ट्री, पैकेज इंस्टॉलेशन, कॉन्फ़िगरेशन, सक्षम/अक्षम, और प्लगइन संपत्तियां प्रदान की गईं।
8 endpointsएमसीपी कनेक्शन कॉन्फ़िगरेशन सीआरयूडी और सर्वर-जानकारी अनुरोध।
5 endpointsडेस्कटॉप गेटवे स्थिति, सक्षम/अक्षम, डिवाइस पेयरिंग, और डिवाइस निरस्तीकरण।
हिसाब किताब
15 endpointsखाता साइन-इन, साइन-अप, पुनर्प्राप्ति, सत्यापन, जादुई लिंक, सत्र लुकअप और पासकी पंजीकरण।
18 endpointsप्रोफ़ाइल, खाता संसाधन, एपीआई कुंजी, टोकन रिकॉर्ड, पासवर्ड और खाता हटाना।
5 endpointsसंगठन सूचियाँ और प्रबंधित संगठन रिकॉर्ड।
4 endpointsअधिसूचना सूचीकरण, पठन-स्थिति अद्यतन, विलोपन, और सभी पढ़े जाने योग्य चिह्न।
15 endpointsसदस्यता जानकारी, स्ट्राइप चेकआउट/पोर्टल एकीकरण, परीक्षण रखरखाव, और हस्ताक्षरित वेबहुक अंतर्ग्रहण।
10 endpointsएप्लिकेशन मेट्रिक्स, हाल की गतिविधि, उपयोग प्रश्न और ट्रैकिंग अनुरोध।
10 endpointsडेस्कटॉप एकीकरण मार्ग, ट्रैक किए गए प्रोजेक्ट संचालन, सूचनाएं और पुश-सदस्यता रिकॉर्ड।
1 endpointsस्थानीय एप्लिकेशन एपीआई के माध्यम से प्रतीक्षा सूची पंजीकरण सबमिट करें।
ओपनएपीआई दस्तावेज़
डाउनलोड करना /docs/api/openapi.json (चेक-इन स्नैपशॉट यह साइट प्रस्तुत करती है) या चालू साइडकार से लाइव दस्तावेज़ प्राप्त करें /api/openapi.json. स्नैपशॉट को पुनः जनरेट करें bun run generate:api-reference में packages/web समापन बिंदु बदलने के बाद.
अनुबंध और सर्वर
@cadcamfun/api प्रभाव HttpApi के साथ अनुरोध और प्रतिक्रिया स्कीमा को परिभाषित करता है। यह जड़ का निर्यात करता है Api, डोमेन रिकॉर्ड, टैग की गई त्रुटियाँ, और क्लाइंट। अनुरोध हैंडलर, प्राधिकरण निर्णय, डेटाबेस प्रश्न और प्रदाता कॉल साइडकार में चलते हैं। स्कीमा आयात करने से सर्वर प्रारंभ नहीं होता है.
साइडकार अपना सेवित अनुबंध यहां प्रकाशित करता है GET /api/openapi.json. जिस एप्लिकेशन से आप जुड़े हुए हैं उसके तरीकों, पथ पैरामीटर, पेलोड और स्थिति कोड का निरीक्षण करने के लिए उस चल रहे दस्तावेज़ का उपयोग करें। सर्वर अपने समूहों को असेंबल करता है apps/sidecar/src/layers.ts; साझा अनुबंध को इसमें संकलित किया गया है packages/api/src/index.ts.
संसाधन परिवार
- डिज़ाइन: परियोजनाएं, चित्र, घटक, ड्राइंग संस्करण, इकाई आयात/निर्यात, और सटीक सीएडी विश्लेषण, एसटीईपी निर्यात और असेंबली विश्लेषण।
- उत्पादन: टूलपाथ और संस्करण, टिप्पणियाँ, जनरेटर सुझाव, पार्सिंग, रीप्ले सत्यापन, मूल निर्माण कार्य, सामग्री, उपकरण, मशीन कॉन्फ़िगरेशन, लाइब्रेरी आइटम और उत्पादन लागत।
- सहायक: प्रदाता, क्रेडेंशियल, मॉडल, सत्र, स्ट्रीमिंग टर्न, सत्र नियंत्रण, क्रियाएँ, प्रोजेक्ट मेमोरी, कार्यक्षेत्र संदर्भ और स्टेटलेस सलाह।
- सहयोग: शाखाएं, कमिट, अंतर, पुल अनुरोध, समीक्षाएं, गिटहब मिरर, वर्कफ़्लो फ़ाइलें और रन, लाइव इवेंट और साथी जोड़ी।
- आवेदन सेवाएँ: उपयोगकर्ता, प्रमाणीकरण, संगठन, सूचनाएं, फ़ाइलें, प्लगइन्स, बिलिंग, विश्लेषण, प्रतीक्षा सूची, एमसीपी कॉन्फ़िगरेशन और स्थानीय कुंजी-मूल्य भंडारण।
अनुबंध समूह अपने समापन बिंदु-विशिष्ट प्रतिक्रिया आकार बनाए रखते हैं। एक क्लाइंट को एकल एप्लिकेशन-व्यापी JSON लिफाफा मानने के बजाय उसके द्वारा कॉल किए जाने वाले ऑपरेशन की स्कीमा को डीकोड करना चाहिए।
प्रतिक्रियाएँ और असफलताएँ
सामान्य टैग की गई त्रुटियाँ HTTP 400 पर मैप होती हैं (BadRequest), 401 (Unauthorized), 403 (Forbidden), 404 (NotFound), 405 (MethodNotAllowed), 409 (Conflict), और 500 (InternalError). उनके घोषित स्कीमा मानव-पठनीय हैं message. कुछ समूह एक लिफाफे का उपयोग करते हैं success: false, message, और errors; एक छोटी संख्या का उपयोग करें error मैदान।
सफलता प्रतिक्रियाएँ एक रिकॉर्ड, एक सरणी, एक निरर्थक मान या एक लिफाफा हो सकती हैं। Envelope शामिल success, message, और data; EnvelopeOpt संदेश को वैकल्पिक बनाता है. जहां उपयुक्त हो, निर्माण समापनबिंदु स्पष्ट रूप से 201 घोषित करते हैं। HTTP स्थिति और एंडपॉइंट स्कीमा की जांच किए बिना केवल JSON फ़ील्ड से सफलता का अनुमान न लगाएं।
स्कीमा डिकोडिंग हैंडलर निष्पादित होने से पहले ट्रांसपोर्ट इनपुट को मान्य करता है। व्यवसाय सत्यापन अभी भी सेवा में चलता है: एक संरचनात्मक रूप से वैध अनुरोध एक दुर्गम ड्राइंग को संदर्भित कर सकता है, इसमें एक पुरानी विनिर्माण कलाकृति शामिल हो सकती है, या एक परस्पर विरोधी शाखा संचालन का अनुरोध कर सकता है।
साझा क्लाइंट का उपयोग करें
ApiClient.layer लिया जाता है एक baseUrl और आवेदन token. यह फ़ेच ट्रांसपोर्ट और क्लाइंट प्राधिकरण मिडलवेयर की आपूर्ति करता है। इसकी विधियाँ सीधे से ली गई हैं Api, इसलिए यह क्लाइंट कोड जनरेशन द्वारा छोड़े गए ऑपरेशन को भी कवर करता है।
import { ApiClient } from "@cadcamfun/api"
import { Effect } from "effect"
const projects = Effect.gen(function* () {
const api = yield* ApiClient
return yield* api.projects.list()
}).pipe(Effect.provide(ApiClient.layer({ baseUrl, token }))) आधार URL साइडकार का लूपबैक पता और निर्दिष्ट पोर्ट है। लॉन्च के दौरान पोर्ट जारी रखने के बजाय इसे डेस्कटॉप कनेक्शन से हल करें। टोकन को यूआरएल और लॉग से दूर रखें।
डिजाइन और विनिर्माण अनुरोध
परियोजना संचालन का उपयोग /api/projects; रेखाचित्रों और टूलपाथों के अपने संग्रह और विवरण मार्ग होते हैं। POST /api/toolpaths/generate जनरेटर सेटिंग्स और ज्यामिति से जी-कोड, पार्स किए गए प्रोग्राम डेटा, चेतावनियां और आंकड़े तैयार करता है। /suggest, /parse, और /verify पैरामीटर सलाह, जी-कोड व्याख्या और स्टॉक रीप्ले को उजागर करें। ये संगणनाएँ कोई सहेजा गया टूलपाथ नहीं बनातीं.
POST /api/toolpaths/manufacture एक संस्करणित CAD स्नैपशॉट स्वीकार करता है और NC, टूल असाइनमेंट, कटिंग डेटा, दावों, मुद्दों और रिलीज़ स्तर के साथ एक कर्नेल परिणाम लौटाता है। टूलपाथ क्रिएट या अपडेट ऑपरेशन के माध्यम से परिणामी दस्तावेज़ को अलग से सहेजें। देखना setups के दृढ़ता के दौरान साक्ष्य सत्यापन के लिए।
POST /api/cad/exact/analyze, /step, और /assembly स्पष्ट तत्वों या संग्रहीत आरेखण पहचानकर्ता को स्वीकार करें। संग्रहीत ड्राइंग को पढ़ने से कॉल करने वाले की सामान्य ड्राइंग एक्सेस जांच लागू हो जाती है।
स्ट्रीमिंग और पुनर्प्राप्ति
एआई स्ट्रीम पाठ, तर्क, टूल कॉल और परिणाम, अनुमति और प्रश्न अनुरोध, पुनः प्रयास, स्थिति, संदर्भ और पूर्णता के लिए टाइप की गई घटनाओं को वहन करती है। ग्राहकों को घटनाओं का क्रमिक रूप से उपभोग करना चाहिए और सत्र पहचानकर्ता को बनाए रखना चाहिए। HTTP कनेक्शन समाप्त होना इस बात का पर्याप्त प्रमाण नहीं है कि मॉडल टर्न समाप्त हो गया है: पुन: कनेक्ट करने के बाद सत्र स्थिति को फिर से पढ़ा जा सकता है।
एआई इवेंट स्कीमा लाइव रहते हैं packages/api/src/ai-events.ts और packages/ai/src/events.ts. सामान्य लाइव इवेंट इवेंट समूह का उपयोग करते हैं। बाइनरी डाउनलोड, जावास्क्रिप्ट प्लगइन बूटस्ट्रैप प्रतिक्रियाएँ, और हस्ताक्षरित कच्चे वेबहुक निकायों को अपने स्वयं के परिवहन प्रबंधन की आवश्यकता होती है।
उन मार्गों की सूची बनाएं जिनका पृष्ठ उनके परिणाम उपयोग करते हैं page और limit क्वेरी पैरामीटर. मशीन कॉन्फ़िगरेशन के लिए, page डिफ़ॉल्ट 1 है, limit डिफॉल्ट 20 पर है और इसे 1-100 पर क्लैंप किया गया है, और प्रतिक्रिया जारी रहती है pagination साथ page, limit, total, और totalPages (apps/sidecar/src/http/machine-configs.ts). वास्तव में घोषित मापदंडों के लिए प्रत्येक समूह के संदर्भ पृष्ठ की जाँच करें।
जनरेट किए गए SDK
@cadcamfun/httpapi-codegen httpApi समूहों को ऑपरेशन मेटाडेटा और जेनरेट किए गए क्लाइंट में प्रतिबिंबित करता है। एपीआई जेनरेटर एक प्रॉमिस एसडीके लिखता है packages/api/src/sdk/generated और ग्राहकों को प्रभावित करें packages/api/src/client/generated. पब्लिक प्रॉमिस एसडीके को इस रूप में निर्यात किया जाता है @cadcamfun/api/sdk.
bun run --filter @cadcamfun/api generate
bun run --filter @cadcamfun/api generate:check दोनों उत्पन्न लक्ष्य प्रोफाइल मल्टीपार्ट अपलोड, प्लगइन मल्टीपार्ट इंस्टॉलेशन, मल्टीपल सक्सेस स्कीमा के साथ एमसीपी निर्माण, टकराने वाले पहचानकर्ताओं के साथ एमसीपी अपडेट, डुप्लिकेट इनपुट नामों के साथ प्रोजेक्ट टूलपाथ निर्माण और स्ट्रीम हेडर के साथ प्लगइन फाइल सर्विंग को छोड़ देते हैं। प्रॉमिस लक्ष्य स्ट्राइप रॉ वेबहुक, प्लगइन जावास्क्रिप्ट बूटस्ट्रैप, बाइनरी फ़ाइल डाउनलोड और जनरेटर के जेनरेट/सुझाव अनुरोधों को भी छोड़ देता है। ये चूकें स्पष्ट हैं packages/api/scripts/generate-clients.ts; उन परिचालनों के लिए अनुबंध ग्राहक या उपयुक्त कच्चे परिवहन का उपयोग करें।
स्रोत संगठन
groups/ संसाधन अनुबंध शामिल हैं. साझा ज्यामिति और सीएएम स्कीमा से आते हैं @cadcamfun/core; cad-exact.ts, cam-kernel.ts, और cam-program.ts समृद्ध सीएडी/सीएएम परिणामों और पोर्टेबल दस्तावेज़ों का वर्णन करें। client.ts अनुबंध क्लाइंट बनाता है, जबकि जेनरेशन स्क्रिप्ट जेनरेट किए गए लक्ष्यों और चूक सूचियों का मालिक होता है।
एकीकरण नियम
परिवहन सीमाओं पर अनुबंध स्कीमा का पुन: उपयोग करें और डेटाबेस निर्भरता को साइडकार में रखें। अपने अनुबंध, हैंडलर, सेवा या रिपॉजिटरी और केंद्रित HTTP कवरेज के माध्यम से एक समापन बिंदु का परिचय दें। जेनरेट की गई फ़ाइलें आउटपुट हैं: उनके अनुबंध या जेनरेटर को संपादित करें और उन्हें पुन: उत्पन्न करें। एक एपीआई स्कीमा संस्करण, एक पोर्टेबल फ़ाइल संस्करण और एक प्लगइन एपीआई संस्करण अलग-अलग अनुबंधों का वर्णन करते हैं।
संसाधन संदर्भ
325 संचालन आर-पार 232 पथ और 35 संसाधन समूह, 56 नामित स्कीमा के साथ। प्रत्येक संसाधन पृष्ठ अपने संचालन को सूचीबद्ध करता है और घोषित पथ/क्वेरी/हेडर पैरामीटर, आवश्यक और वैकल्पिक फ़ील्ड, अशक्त मान, सामग्री प्रकार, सफलता और त्रुटि स्थिति और पूर्ण स्कीमा दिखाता है।
से डेटा उत्सर्जित होता है packages/api/src/index.ts, वही रचित HttpApi अनुबंध जिसका उपयोग क्लाइंट और साइडकार द्वारा किया जाता है। पृष्ठ चेक-आउट अनुबंध का वर्णन करते हैं; चल रहे सर्वर का निरीक्षण करें /api/openapi.json यदि आप किसी अन्य संस्करण से कनेक्ट होते हैं।
HTTP संसाधन
स्वास्थ्य
स्थिति और टाइमस्टैम्प के साथ सार्वजनिक प्रक्रिया स्वास्थ्य जांच।
HTTP संसाधन
प्रणाली
मूल ग्राहकों द्वारा उपयोग की जाने वाली प्रमाणित तैयारी और एप्लिकेशन संस्करण।
HTTP संसाधन
परियोजनाओं
स्वामी और संगठन पहुंच जांच के साथ प्रोजेक्ट बनाएं, सूचीबद्ध करें, पढ़ें, अपडेट करें और हटाएं।
HTTP संसाधन
कार्यस्थान
सहयोगी ग्राहकों के लिए केवल पढ़ने योग्य प्रोजेक्ट चित्र, घटक, टूलपाथ, लाइब्रेरी संसाधन और सीमित पूर्वावलोकन।
HTTP संसाधन
चित्र
प्रोजेक्ट चित्र और उनकी सहेजी गई ज्यामिति, मेटाडेटा और अद्यतन संचालन।
HTTP संसाधन
अवयव
पुन: प्रयोज्य परियोजना घटक और उनका स्थायी डिज़ाइन डेटा।
HTTP संसाधन
सटीक सीएडी
सटीक ज्यामिति का विश्लेषण करें, STEP निर्यात करें, और दृश्य स्नैपशॉट या सहेजे गए चित्रों से असेंबली संबंधों का निरीक्षण करें।
HTTP संसाधन
टूलपाथ
सहेजे गए मशीनिंग कार्यक्रम, ड्राइंग एसोसिएशन और मान्य पोर्टेबल विनिर्माण दस्तावेज़।
HTTP संसाधन
प्रोजेक्ट टूलपाथ
प्रोजेक्ट-स्कोप्ड टूलपाथ लिस्टिंग और एंडपॉइंट-विशिष्ट प्रतिक्रिया लिफाफे के साथ निर्माण।
HTTP संसाधन
मशीनिंग
मूल निर्माण, सेटिंग्स-संचालित जी-कोड पीढ़ी, सुझाव, पार्सिंग और रीप्ले सत्यापन।
HTTP संसाधन
टूलपाथ इतिहास
टूलपाथ संस्करण, पुनर्स्थापना, लाइब्रेरी खोज, और थ्रेडेड प्रोग्राम टिप्पणियाँ।
HTTP संसाधन
सामग्री
सामग्री रिकॉर्ड, एप्लिकेशन मशीनिंग गुण और संसाधन पहुंच।
HTTP संसाधन
सामग्री भंडार
लाइब्रेरी इंटरचेंज के लिए सामग्री भंडारण अनुलग्नक और JSON आयात/निर्यात।
HTTP संसाधन
औजार
एप्लिकेशन मशीनिंग वर्कफ़्लोज़ द्वारा उपयोग किए जाने वाले कटर रिकॉर्ड और आयाम।
HTTP संसाधन
उपकरण भंडारण
उपकरण भंडारण डेटा और संग्रह या प्रति-उपकरण आयात/निर्यात।
HTTP संसाधन
मशीनों
मशीन कॉन्फ़िगरेशन रिकॉर्ड, अपडेट, निष्कासन और क्लोनिंग।
HTTP संसाधन
मशीन भंडारण
मशीन भंडारण अनुलग्नक और कॉन्फ़िगरेशन आयात/निर्यात।
HTTP संसाधन
पुस्तकालय
साझा लाइब्रेरी रिकॉर्ड और घटक, सामग्री और टूल लुकअप संग्रह।
HTTP संसाधन
उत्पादन लागत
अनुमान, गणना अनुरोध, सामग्री लागत, संचालन लागत और उपकरण-पहनने के रिकॉर्ड।
HTTP संसाधन
एआई सत्र और क्रियाएँ
प्रदाता, क्रेडेंशियल, वार्तालाप, स्ट्रीमिंग टर्न, एक्शन इनवोकेशन, ब्रिज टोकन, कौशल और सत्र पुनर्प्राप्ति।
HTTP संसाधन
इतिहास और कार्यप्रवाह
प्रोजेक्ट गिट-संगत कमिट, शाखाएं, पुनर्स्थापना, समीक्षा, गिटहब मिररिंग और वर्कफ़्लो प्रेषण।
HTTP संसाधन
परियोजना घटनाएँ
लाइव क्लाइंट के लिए प्रोजेक्ट-स्कोप्ड सर्वर-भेजे गए इवेंट।
HTTP संसाधन
साथी जोड़ी
डेस्कटॉप गेटवे स्थिति, सक्षम/अक्षम, डिवाइस पेयरिंग, और डिवाइस निरस्तीकरण।
HTTP संसाधन
प्लग-इन
प्लगइन रजिस्ट्री, पैकेज इंस्टॉलेशन, कॉन्फ़िगरेशन, सक्षम/अक्षम, और प्लगइन संपत्तियां प्रदान की गईं।
HTTP संसाधन
एमसीपी विन्यास
एमसीपी कनेक्शन कॉन्फ़िगरेशन सीआरयूडी और सर्वर-जानकारी अनुरोध।
HTTP संसाधन
फ़ाइलें
एंडपॉइंट-विशिष्ट पेलोड और प्रतिक्रिया एन्कोडिंग के साथ अपलोड और डाउनलोड संचालन।
HTTP संसाधन
कुंजी-मूल्य भंडारण
उपसर्ग सूची और प्रति-कुंजी संचालन के साथ JSON-संगत प्राथमिकता और संदर्भ प्रविष्टियाँ।
HTTP संसाधन
संगठनों
संगठन सूचियाँ और प्रबंधित संगठन रिकॉर्ड।
HTTP संसाधन
सूचनाएं
अधिसूचना सूचीकरण, पठन-स्थिति अद्यतन, विलोपन, और सभी पढ़े जाने योग्य चिह्न।
HTTP संसाधन
प्रमाणीकरण
खाता साइन-इन, साइन-अप, पुनर्प्राप्ति, सत्यापन, जादुई लिंक, सत्र लुकअप और पासकी पंजीकरण।
HTTP संसाधन
उपयोगकर्ताओं
प्रोफ़ाइल, खाता संसाधन, एपीआई कुंजी, टोकन रिकॉर्ड, पासवर्ड और खाता हटाना।
HTTP संसाधन
बिलिंग
सदस्यता जानकारी, स्ट्राइप चेकआउट/पोर्टल एकीकरण, परीक्षण रखरखाव, और हस्ताक्षरित वेबहुक अंतर्ग्रहण।
HTTP संसाधन
एनालिटिक्स
एप्लिकेशन मेट्रिक्स, हाल की गतिविधि, उपयोग प्रश्न और ट्रैकिंग अनुरोध।
HTTP संसाधन
अनुप्रयोग सेवाएँ
डेस्कटॉप एकीकरण मार्ग, ट्रैक किए गए प्रोजेक्ट संचालन, सूचनाएं और पुश-सदस्यता रिकॉर्ड।
HTTP संसाधन
प्रतीक्षा सूची
स्थानीय एप्लिकेशन एपीआई के माध्यम से प्रतीक्षा सूची पंजीकरण सबमिट करें।
ओपनएपीआई JSON डाउनलोड करें · कैप्चर की गई प्रतिक्रियाओं के साथ अनुरोधों का पालन करें
कनेक्शन और अनुरोध कन्वेंशन
एपीआई की आपूर्ति एक निश्चित होस्टेड एंडपॉइंट के बजाय स्थानीय साइडकार द्वारा की जाती है। टौरी अपने गतिशील रूप से चयनित लूपबैक यूआरएल और लॉन्च टोकन प्राप्त करता है। मैन्युअल रूप से शुरू किया गया साइडकार JSON रेडी इवेंट में अपने पोर्ट की घोषणा करता है। इसके बजाय एक युग्मित मोबाइल क्लाइंट इसके कॉन्फ़िगर किए गए HTTPS गेटवे से जुड़ता है।
curl --silent --show-error "$CADCAMFUN_URL/api/projects" \
--header "Authorization: Bearer $CADCAMFUN_TOKEN" वास्तविक कनेक्शन से दोनों चर सेट करें। संसाधन पृष्ठों पर अनुरोध टेम्प्लेट जानबूझकर प्लेसहोल्डर और पेलोड फ़ाइलों का उपयोग करते हैं। वैकल्पिक परिवहन फ़ील्ड ऐसे वादे नहीं हैं कि प्रत्येक व्यावसायिक ऑपरेशन उन्हें छोड़ सकता है: उदाहरण के लिए, प्रोजेक्ट निर्माण, अपने हैंडलर में एक लापता नाम को अस्वीकार कर देता है।
| सम्मेलन | ग्राहक व्यवहार |
|---|---|
| पथ पैरामीटर | नामित सेगमेंट को बदलें और उसके मान को यूआरएल-एनकोड करें। एक पहचानकर्ता को एक एकल खंड के रूप में मानें। |
| क्वेरी पैरामीटर | घोषित मानों को एन्कोड करें। पेजिनेशन और फ़िल्टरिंग प्रति-अंतबिंदु हैं; कोई सार्वभौमिक पृष्ठ-आकार अनुबंध नहीं है। |
| JSON पेलोड | घोषित वस्तु को साथ भेजें Content-Type: application/json. आवश्यक उपस्थिति और शून्य को स्वीकार करना स्वतंत्र है। |
| मल्टीपार्ट पेलोड | अपलोड क्लाइंट या फॉर्मडेटा के साथ फॉर्म पार्ट्स बनाएं; परिवहन को अपनी सीमा चुनने दें। |
| बाइनरी, जावास्क्रिप्ट, या स्ट्रीम प्रतिक्रिया | घोषित मीडिया प्रकार का उपभोग करें। फ़ोन मत करो response.json() बिना शर्त. |
| त्रुटियाँ | HTTP स्थिति की जाँच करें और समापन बिंदु की घोषित विफलता आकृति को डिकोड करें। संसाधन परिवारों में त्रुटि लिफ़ाफ़े भिन्न-भिन्न होते हैं। |
| पुन: प्रयास किया गया लिखता है | म्यूटेशन पुनः सबमिट करने से पहले बाधित ऑपरेशन के बाद की स्थिति पढ़ें। अनुबंध एक सार्वभौमिक निष्क्रियता-कुंजी तंत्र प्रदान नहीं करता है। |
उत्पन्न संदर्भ रखरखाव
packages/web/script/generate-api-reference.mjs एपीआई पैकेज के स्थापित प्रभाव कार्यान्वयन का उपयोग करके संकलित अनुबंध को पढ़ता है और संदर्भ JSON लिखता है। दस्तावेज़ीकरण कार्यकर्ता उत्पन्न सामग्री का उपभोग करता है; यह दस्तावेज़ीकरण अनुरोधों का उत्तर देने के लिए एप्लिकेशन सर्वर को प्रारंभ नहीं करता है।
bun run generate:api-reference
bun run check:api-reference
bun run check:docs-index प्रत्येक घोषित ऑपरेशन के विरुद्ध संसाधन कवरेज की जाँच की जाती है। नए जोड़े गए समूह को पाठक-सामना करने वाला मेटाडेटा और नेविगेशन प्राप्त करना होगा, और एक परिवर्तित अनुरोध या प्रतिक्रिया को पुनर्जीवित करना होगा। हस्तलिखित मार्गदर्शिकाएँ अभी भी प्राधिकरण नियमों, दुष्प्रभावों, सेवा कॉन्फ़िगरेशन और सीमाओं की व्याख्या करती हैं जिन्हें अकेले HTTP स्कीमा व्यक्त नहीं कर सकता है।
एकीकरण व्यंजन
के साथ शुरू hTTP अनुरोधों को कैप्चर किया गया यह देखने के लिए कि परियोजना निर्माण, व्यवसाय सत्यापन, वाहक अस्वीकृति, संबंधित रिकॉर्ड और कुंजी-मूल्य दृढ़ता वास्तव में कैसे प्रतिक्रिया देते हैं। उपयोग टाइप किया गया क्लाइंट एकीकरण प्रॉमिस एसडीके या इफ़ेक्ट क्लाइंट के साथ उन परिचालनों को पुन: पेश करने और उनके विशिष्ट विफलता चैनलों को संभालने के लिए।
| एकीकरण | प्रक्रिया | बनाए रखने के लिए मुख्य स्थिति |
|---|---|---|
| परियोजना संपादक | कार्य बनाएँ, सहेजें और पुनः खोलें | परियोजना/संसाधन पहचान, सहेजा गया डेटा, वास्तविक अद्यतन शब्दार्थ। |
| विनिर्माण पाइपलाइन | मूल नौकरी उत्पन्न करें और जारी रखें | कैप्चर किया गया अनुरोध, सटीक एनसी/प्रोग्राम, रिलीज़ दावे, मिलान पोर्टेबल दस्तावेज़। |
| सहायक यूआई | घटनाओं का उपभोग करें और सत्र पुनर्प्राप्त करें | प्रोजेक्ट/सत्र पहचान, लंबित अनुमतियाँ/प्रश्न, टर्मिनल टर्न स्थिति। |
| बाहरी क्षमता | एक समर्थित प्लगइन लेखक | मेनिफेस्ट, मॉड्यूल निर्यात, क्षमता अनुदान, तर्क सत्यापन और उपकरण परिणाम। |
| स्वचालन की समीक्षा करें | संस्करण और परियोजना कार्य की समीक्षा करें | प्रतिबद्ध/रेफरी, संरचनात्मक अंतर, समीक्षाएं, प्रतिबद्ध वर्कफ़्लो, व्यक्तिगत जांच आउटपुट। |
| युग्मित ग्राहक | डिवाइस एक्सेस सक्षम और प्रबंधित करें | गेटवे पता, प्रमाणपत्र फ़िंगरप्रिंट, व्यक्तिगत रूप से प्रतिसंहरणीय डिवाइस टोकन। |
ये रेसिपी HTTP अनुबंधों को वास्तविक सेवा व्यवहार से जोड़ती हैं। एक स्कीमा आवश्यक उपस्थिति, एन्कोडिंग और लौटाई गई आकृति का वर्णन कर सकती है; इसकी लिंक की गई मार्गदर्शिका पहुंच नियमों, दृढ़ता प्रभावों, समर्थित पुनर्प्राप्ति और सीमाओं की व्याख्या करती है जिनका केवल उन प्रकारों से अनुमान नहीं लगाया जा सकता है।
प्रति संसाधन समूह संचालन
अनुबंध वर्तमान में 270 समूहों में 34 संचालन की घोषणा करता है, सभी एक ही के तहत bearer HTTP सुरक्षा योजना. वाहक सुरक्षा के बिना एकमात्र ऑपरेशन सार्वजनिक स्वास्थ्य जांच है। तालिका की गणना जेनरेट किए गए ओपनएपीआई दस्तावेज़ से की जाती है: प्रति समूह संचालन, उपयोग की गई HTTP विधियां, कितने अलग-अलग पथ और एक प्रतिनिधि पथ।
| समूह | टैग | ऑप्स | तरीकों | के रास्ते | उदाहरण पथ |
|---|---|---|---|---|---|
| स्वास्थ्य | health | 1 | 1 प्राप्त करें | 1 | /api/health |
| प्रणाली | system | 2 | 2 प्राप्त करें | 2 | /health |
| परियोजनाओं | projects | 5 | मिटाएं 1, प्राप्त करें 2, पोस्ट करें 1, डालें 1 | 2 | /api/projects |
| चित्र | drawings | 5 | मिटाएं 1, प्राप्त करें 2, पोस्ट करें 1, डालें 1 | 2 | /api/drawings/{id} |
| अवयव | components | 5 | मिटाएं 1, प्राप्त करें 2, पोस्ट करें 1, डालें 1 | 2 | /api/components/{id} |
| सटीक सीएडी | cadExact | 3 | पोस्ट 3 | 3 | /api/cad/exact/analyze |
| टूलपाथ | toolpaths | 7 | मिटाएं 1, प्राप्त करें 3, पोस्ट करें 2, डालें 1 | 3 | /api/drawings/{id}/toolpaths |
| प्रोजेक्ट टूलपाथ | projectToolpaths | 2 | प्राप्त करें 1, पोस्ट करें 1 | 1 | /api/projects/{id}/toolpaths |
| मशीनिंग | toolpathGenerator | 5 | पोस्ट 5 | 5 | /api/toolpaths/generate |
| टूलपाथ इतिहास | toolpathExtras | 8 | मिटाएं 1, प्राप्त करें 3, पोस्ट करें 3, डालें 1 | 5 | /api/toolpaths/library |
| सामग्री | materials | 5 | मिटाएं 1, प्राप्त करें 2, पोस्ट करें 1, डालें 1 | 2 | /api/materials |
| सामग्री भंडार | materialsStorage | 5 | हटाएं 1, प्राप्त करें 2, पोस्ट करें 2 | 2 | /api/materials/export-import |
| औजार | tools | 5 | मिटाएं 1, प्राप्त करें 2, पोस्ट करें 1, डालें 1 | 2 | /api/tools |
| उपकरण भंडारण | toolsStorage | 7 | हटाएं 1, प्राप्त करें 3, पोस्ट करें 3 | 3 | /api/tools/export-import |
| मशीनों | machineConfigs | 6 | मिटाएं 1, प्राप्त करें 2, पोस्ट करें 2, डालें 1 | 3 | /api/machine-configs |
| मशीन भंडारण | machineConfigsStorage | 5 | हटाएं 1, प्राप्त करें 2, पोस्ट करें 2 | 2 | /api/machine-configs/export-import |
| पुस्तकालय | library | 8 | मिटाएं 1, प्राप्त करें 5, पोस्ट करें 1, डालें 1 | 5 | /api/library |
| उत्पादन लागत | production-costs | 21 | मिटाएं 4, प्राप्त करें 8, पोस्ट करें 5, डालें 4 | 9 | /api/production-costs/estimates |
| एआई सत्र और क्रियाएँ | ai | 34 | मिटाएं 3, प्राप्त करें 8, पोस्ट करें 21, डालें 2 | 32 | /api/ai/actions |
| इतिहास और कार्यप्रवाह | vcs | 22 | प्राप्त करें 10, पोस्ट करें 11, डालें 1 | 19 | /api/projects/{id}/actions/dispatch |
| परियोजना घटनाएँ | events | 1 | 1 प्राप्त करें | 1 | /api/projects/{id}/events |
| साथी जोड़ी | companion | 5 | हटाएं 1, प्राप्त करें 1, पोस्ट करें 3 | 5 | /api/companion |
| प्लग-इन | plugins | 16 | मिटाएं 1, प्राप्त करें 8, पैच करें 1, पोस्ट करें 4, डालें 2 | 12 | /api/plugins |
| एमसीपी विन्यास | mcp | 8 | मिटाएं 2, प्राप्त करें 2, पोस्ट करें 2, डालें 2 | 3 | /api/mcp/config |
| फ़ाइलें | files | 2 | प्राप्त करें 1, पोस्ट करें 1 | 2 | /api/download |
| कुंजी-मूल्य भंडारण | kv | 4 | हटाएं 1, प्राप्त करें 2, डालें 1 | 2 | /api/kv |
| संगठनों | organizations | 5 | मिटाएं 1, प्राप्त करें 2, पोस्ट करें 1, डालें 1 | 2 | /api/organizations |
| सूचनाएं | notifications | 4 | मिटाएं 1, प्राप्त करें 1, पोस्ट करें 1, डालें 1 | 3 | /api/notifications |
| प्रमाणीकरण | auth | 12 | प्राप्त करें 1, पोस्ट करें 11 | 12 | /api/auth/forgot-password |
| उपयोगकर्ताओं | user | 16 | मिटाएं 2, प्राप्त करें 10, पोस्ट करें 2, डालें 2 | 12 | /api/user/api-keys |
| बिलिंग | billing | 15 | मिटाएं 1, प्राप्त करें 5, पोस्ट करें 8, डालें 1 | 10 | /api/better-auth-stripe/billing-portal |
| एनालिटिक्स | analytics | 10 | हटाएं 1, प्राप्त करें 7, पोस्ट करें 2 | 9 | /api/analytics |
| अनुप्रयोग सेवाएँ | misc | 10 | मिटाएं 2, प्राप्त करें 3, पोस्ट करें 4, डालें 1 | 6 | /api/app-control/notify |
| प्रतीक्षा सूची | waitlist | 1 | पोस्ट 1 | 1 | /api/waitlist |
पूरे अनुबंध में स्थिति कोड
प्रत्येक घोषित प्रतिक्रिया को प्रति ऑपरेशन एक बार गिनने से यह तस्वीर मिलती है कि ग्राहक को क्या डिकोड करने के लिए तैयार होना चाहिए:
| स्थिति | पर घोषित किया गया | विशिष्ट शरीर |
|---|---|---|
| 200 | 242 संचालन | संसाधन, सरणी, निरर्थक मान या Envelope |
| 201 | 28 संचालन | बनाया गया रिकॉर्ड (उदाहरण के लिए POST /api/projects) |
| 204 | 1 ऑपरेशन | कोई नहीं |
| 400 | 206 संचालन | BadRequest, EnvBadRequest और परिवार-विशिष्ट प्रकार |
| 401 | 269 संचालन | Unauthorized (वाहक मिडलवेयर) |
| 403 | 101 संचालन | Forbidden / EnvForbidden |
| 404 | 149 संचालन | NotFound / EnvNotFound |
| 405 | 30 संचालन | EnvMethodNotAllowed / KeyedMethodNotAllowed |
| 409 | 29 संचालन | Conflict / EnvConflict |
| 500 | 264 संचालन | InternalError, EnvInternal, KeyedInternal और पारिवारिक संस्करण |
| 501, 503 | प्रत्येक 1 ऑपरेशन | समापन बिंदु-विशिष्ट |
प्रत्येक त्रुटि एक प्रभाव टैग की गई त्रुटि है, इसलिए इसके JSON बॉडी में हमेशा एक होता है _tag इसके क्षेत्रों के बगल में विभेदक। तीन निकाय परिवार हैं, जो विरासत संचालकों से विरासत में मिले हैं, इसलिए मौजूदा ग्राहक काम करते रहते हैं:
{ "_tag": "NotFound", "message": "Project not found" } { "_tag": "EnvNotFound", "success": false, "message": "Material not found", "errors": null } { "_tag": "KeyedInternal", "error": "Failed to load components" } सफलता के लिफाफे त्रुटि लिफाफे को प्रतिबिंबित करते हैं: { success: true, message, data }, कहाँ data शायद null. EnvelopeOpt भिन्न प्रकार का लोप message जब हैंडलर ने एक भी उपलब्ध नहीं कराया। चालू करना _tag की उपस्थिति के बजाय message या error.
अनुरोध कैसे संसाधित किया जाता है
- राउटर विधि और पथ से मेल खाता है। अज्ञात मार्ग कभी भी हैंडलर तक नहीं पहुंचते।
- वाहक मिडलवेयर निरंतर समय में टोकन की तुलना करता है। एक गुम या गलत टोकन किसी भी डिकोडिंग से पहले अनुरोध को 401 के साथ रोक देता है।
- पथ, क्वेरी, हेडर और बॉडी को ऑपरेशन के स्कीमा के विरुद्ध डिकोड किया जाता है। व्यवसाय कोड चलाए बिना संरचनात्मक समस्याएँ 400 हो जाती हैं।
- हैंडलर अभिनय खाते का समाधान करता है, स्वामित्व या संगठन की सदस्यता (403/404) की जांच करता है और सेवा चलाता है।
- परिणाम को घोषित सफलता स्कीमा, या विफलता को उसके टैग की गई त्रुटि स्कीमा और स्थिति के साथ एन्कोड किया गया है।
प्रतिक्रियाएँ जो JSON नहीं हैं
| संचालन | मीडिया प्रकार | कैसे सेवन करें |
|---|---|---|
POST /api/ai/chat/stream | text/event-stream | क्रमिक रूप से पढ़ें; प्रत्येक data: लाइन एक टाइप की गई सहायक घटना है। |
GET /api/projects/{id}/events | text/event-stream | लाइव प्रोजेक्ट इवेंट; एक बूंद के बाद स्थिति को पुनः कनेक्ट करें और पुनः पढ़ें। |
GET /api/plugins/bootstrap.js | application/javascript | प्लगइन होस्ट द्वारा लोड किया गया, JSON के रूप में पार्स नहीं किया गया। |
GET /api/plugins/serve | application/octet-stream | प्लगइन फ़ाइल बाइट्स. |
GET /api/download | application/zip | फ़ाइल के रूप में सहेजें; उपयोग response.blob() या डिस्क पर स्ट्रीम करें। |
जेनरेट किया गया प्रॉमिस एसडीके उस स्ट्रीमिंग प्रतिक्रिया को अस्वीकार कर देता है जिसका सामग्री प्रकार नहीं है text/event-stream साथ ClientError("UnsupportedContentType"), और एक एकल SSE घटना 16 MiB से बड़ी है SseEventTooLarge.
क्लाइंट के बिना एपीआई को कॉल करना
type TaggedError = { _tag: string; message?: string; error?: string }
async function call<T>(base: string, token: string, method: string, path: string, body?: unknown): Promise<T> {
const response = await fetch(new URL(path, base), {
method,
headers: {
authorization: `Bearer ${token}`,
...(body === undefined ? {} : { "content-type": "application/json" }),
},
body: body === undefined ? undefined : JSON.stringify(body),
})
if (response.status === 204) return undefined as T
const payload = await response.json()
if (!response.ok) {
const failure = payload as TaggedError
throw new Error(`${response.status} ${failure._tag}: ${failure.message ?? failure.error}`)
}
return payload as T
}
const project = await call<{ id: string; name: string }>(
process.env.CADCAMFUN_URL!, process.env.CADCAMFUN_TOKEN!,
"POST", "/api/projects", { name: "Bracket" },
) टाइपस्क्रिप्ट में जेनरेट किए गए क्लाइंट को प्राथमिकता दें: वे प्रत्येक ऑपरेशन की सफलता की स्थिति और घोषित त्रुटि स्थिति को जानते हैं, और किसी भी अन्य चीज़ को उसी के रूप में मानते हैं UnexpectedStatus अनुमान लगाने के बजाय.