API 參考
預覽、插入確認及週期表端點。請求中的識別字須保留原樣,不要翻譯。
驗證與 Origin
所有 /v1/* 路由均須 X-Formulix-Chave。金鑰須有效,Origin 主機名稱須屬於帳戶網域(含子網域)。Origin 由瀏覽器提供,不要在 JavaScript 手動設定。OPTIONS 允許已登記或開發環境 Origin、GET/POST 及 Content-Type/X-Formulix-Chave;實際請求仍會核對金鑰所屬帳戶的網域。
回應使用 Vary: Origin 與 Cache-Control: no-store,反映獲准的 Origin,不使用萬用字元。拒絕可能只顯示為瀏覽器 CORS 錯誤。金鑰供公開使用,並非管理憑證;瀏覽器外可偽造 Origin。撤銷金鑰與網域變更通常約5秒後生效。
設定營運方提供的 HTTPS API 網址及帳戶公開金鑰,在控制台登記編輯器網域;子網域亦受涵蓋。https://api.formulix.example 與 YOUR_PUBLIC_KEY 都是佔位範例,並非實際服務網址或金鑰。
POST /v1/calc — 預覽
JSON 為 { op, dados, idioma, notacao }。op 選擇運算,dados 提供參數。預設語言 en;notacao 選填,例如 {"decimal":"."}。回應依運算回傳 HTML、LaTeX、SVG 或輔助資料。成功請求記錄1次預覽、0次插入。
const response = await fetch('https://api.formulix.example/v1/calc', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'X-Formulix-Chave': 'YOUR_PUBLIC_KEY'
},
body: JSON.stringify({
op: 'word', dados: { html: '<p>不含公式的文字</p>' },
idioma: 'zh-Hant'
})
});
const result = await response.json();
if (!response.ok) throw new Error(result.erro);
// { eqs: [] }支援的運算識別字:divisao, multiplicacao, adicao, subtracao, ruffini, mmc, fatoracao, fracoes, regra3, eq1, eq2, sistema, tabela, estudo, grafico, qeq, qmassa, qdist, qvid, qtit, qpaul, qorg, qcad, qtab, word。dados 欄位依運算而異,沒有統一參數結構;請用轉接器建立請求。
POST /v1/inserir — 確認
請求包含 tipo、下列資料及選填 idioma/notacao。回應是 JSON,沒有統一外層結構,使用與預覽相同的標頭。
| tipo | 輸入 | 輸出與計數 |
|---|---|---|
| formula | latex;bloco 選填 | { html } 含 MathML;LaTeX 非空,最多20,000字元;1次插入。 |
| word | html;rtf 選填 | { html };每個轉換公式計1次,無公式為0。 |
| grafico | 圖形運算的 dados | { svg, w, h, funcoes, alt };1次。 |
| conta / quimica | op 及 dados;支援的 op,不含 grafico/word | 依運算回傳 { html }、{ bloco: true, html } 或 { svg, w, h, alt };1次。 |
{"tipo":"formula","latex":"x^2","bloco":false,"idioma":"zh-Hant"}成功範例:{"html":"<math ...>...</math>"}。用戶端將 SVG 轉成 PNG 並上傳教學平台。計算 API 不儲存圖片。每個受理的確認(包含重新編輯)均計數,沒有依識別碼去重的冪等機制;若首次結果不明,避免自動重試確認。
GET /v1/tabela?idioma=zh-Hant
回傳週期表元素陣列 { z, s, nome, pos, cor }。即使是公開資料,仍須有效金鑰及 Origin。不計插入或預覽,仍受每分鐘請求限制。預設語言是英文。
限制
- 請求本文最大15 MiB,超限可在413回應後中斷連線。
- 每金鑰每程序每分鐘1,200次請求,含預覽與週期表;多程序下不是全域上限。
- 方案每月500 / 5,000 / 25,000次;聯網無數值上限。免費版按帳戶及網域限額,付費版按帳戶合計。
- 開發額度預設每帳戶每月300次,可透過 FORMULIX_DEV_LIMITE 調整。含 localhost、.localhost 子網域、127.0.0.1、[::1] 與 .test;仍須有效金鑰。
- 用量預設每5秒跨程序同步,並非逐請求的全域交易計數。月份以 UTC 計算。
錯誤
應用程式錯誤使用 {"erro":"message"};運算驗證訊息可能在地化。
| HTTP | 文件 |
|---|---|
| 400 Invalid JSON. | JSON 無效或本文不是物件 |
| 401 Invalid key. | 金鑰缺漏、無效或撤銷 |
| 402 Monthly insertion limit reached. | 方案或開發月額度已滿 |
| 403 Origin not allowed for this key. | 此金鑰不允許該 Origin;預檢可能無本文 |
| 404 Unknown route. / Unknown operation. | 未知路由或運算 |
| 413 Request too large. | 請求本文過大 |
| 422 | 輸入無效,查看 erro |
| 429 Rate limit reached. | 每分鐘請求超限 |
| 500 Internal error. | 內部錯誤 |
/saude 無須驗證並回傳 {"ok":true},但無法證明某個金鑰能存取服務。
繁體中文介面使用 zh-Hant。Formulix 預設採小數點「.」、sin/tan、座標 (2.5, -0.25)、根 x₁/x₂ 及長除法。「直式計算」包含加、減、乘、除。臺灣教師可用於國小進退位、國中一元二次方程式與高中函數教材;香港教師可配合小學直式及中學方程、函數課題。最小公倍數(LCM)與最大公因數(香港常稱最大公因式,HCF)可並列說明。化學介面採「莫耳質量」,香港常見「摩爾質量」。請先核對校內長除法寫法;不保證符合指定課程。部分介面與錯誤可能顯示英文。