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-Hans'
})
});
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-Hans"}成功示例:{"html":"<math ...>...</math>"}。客户端把 SVG 转为 PNG 并上传到教学平台。计算 API 不保存图片。每个受理的确认(包括重新编辑)都会计数,没有基于标识符的幂等机制;若首次结果不明,避免自动重试确认。
GET /v1/tabela?idioma=zh-Hans
返回周期表元素数组 { 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-Hans。Formulix 默认用小数点“.”、sin/tan、坐标 (2.5, -0.25)、根 x₁/x₂ 和长除法。“列竖式”支持加、减、乘、除。可按小学的进位退位、初中的一元二次方程与二元一次方程组、高中的函数和摩尔质量安排例题;并不承诺符合某一教材或课标。长除法排版请先与本校的竖式习惯核对。该 locale 尚未覆盖全部文本,部分界面和错误可能以英语显示。