API-Vertrag
Routen für Vorschau, bestätigte Einfügung und Periodensystem.
Authentifizierung und Origin
Senden Sie auf allen /v1/*-Routen X-Formulix-Chave. Der Schlüssel muss aktiv sein und der Hostname von Origin zu den Kontodomains einschließlich Subdomains gehören. Der Browser setzt Origin; setzen Sie ihn nicht manuell in JavaScript. Ohne gültigen Ursprung wird die Anfrage abgelehnt.
Der OPTIONS-Preflight akzeptiert Ursprünge, die bei einem Konto registriert sind, oder Entwicklungsursprünge, GET/POST und Content-Type/X-Formulix-Chave. Die eigentliche Anfrage prüft zusätzlich die Domain des Kontos, dem der Schlüssel gehört. Antworten verwenden Vary: Origin und Cache-Control: no-store. Ein erlaubter Ursprung wird ohne Wildcard gespiegelt. Ablehnungen können im Browser nur als CORS-Fehler erscheinen.
Der Schlüssel ist öffentlich und nicht administrativ. Außerhalb des Browsers lässt sich Origin fälschen. Widerrufe und Domainänderungen werden standardmäßig nach etwa 5 Sekunden neu geladen.
POST /v1/calc — Vorschau
JSON-Body: { op, dados, idioma, notacao }. op wählt die Operation, dados enthält ihre Parameter. Standardsprache: en; für Deutsch de. notacao ist optional, etwa { "decimal": "," }. Je nach Operation liefert JSON HTML, LaTeX, SVG oder Hilfsdaten. Eine erfolgreiche Vorschau erfasst 1 Vorschau und 0 Einfügungen.
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>Text ohne Gleichungen</p>' }, idioma: 'de'
})
});
const result = await response.json();
if (!response.ok) throw new Error(result.erro);
// { eqs: [] }Die Beispieladresse und YOUR_PUBLIC_KEY sind Platzhalter. Erkannte Operationen: 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. Die Felder von dados hängen von der Operation ab. Nutzen Sie den Adapter für den Aufbau der Anfrage; ein einheitliches Parameterschema gibt es nicht. API-Bezeichner bleiben unverändert.
POST /v1/inserir — endgültige Ausgabe
Der Body enthält tipo, die unten genannten Daten und optional idioma und notacao. Ausgabe: JSON ohne gemeinsamen Antwortumschlag.
| tipo | Eingabe | Ausgabe und Verbrauch |
|---|---|---|
| formula | latex; optional bloco | { html } mit MathML; 1 Einfügung. Nichtleeres LaTeX bis 20.000 Zeichen. |
| word | html; optional rtf | { html }; 1 pro konvertierter Gleichung, 0 ohne Gleichungen. |
| grafico | dados der Graphenoperation | { svg, w, h, funcoes, alt }; 1 Einfügung. |
| conta / quimica | op und dados; bekannte op außer grafico/word | Je nach Operation { html }, { bloco: true, html } oder { svg, w, h, alt }; 1 Einfügung. |
Beispiel für eine Formel mit denselben Headern wie bei der Vorschau:
{
"tipo": "formula",
"latex": "x^2",
"bloco": false,
"idioma": "de"
}
// HTTP 200: { "html": "<math ...>...</math>" }Der Client wandelt SVG in PNG um und lädt es über die Plattform hoch. Die Berechnungs-API speichert keine Bilder. Jede akzeptierte Bestätigung zählt, auch bei erneuter Bearbeitung; es gibt keine Idempotenz anhand einer Kennung. Wiederholen Sie eine Bestätigung nicht automatisch, wenn unklar ist, ob sie bereits angenommen wurde.
GET /v1/tabela?idioma=de
Liefert ein Array { z, s, nome, pos, cor } für das Periodensystem. Trotz öffentlicher Daten sind gültiger Schlüssel und Origin erforderlich. Keine Einfügung oder Vorschau, aber das Minutenlimit gilt. Standardsprache: Englisch.
Limits
- Body bis 15 MiB. Größere Anfragen können nach der 413-Antwort die Verbindung beenden.
- 1.200 Anfragen pro Schlüssel und Minute, pro Prozess, einschließlich Vorschau und Periodensystem. Bei mehreren Prozessen ist dies kein globales Limit.
- Tarife: 500 / 5.000 / 25.000 Einfügungen oder Schulverbund ohne numerisches Limit. Kostenlos: pro Konto und Domain. Bezahlt: über das Konto summiert.
- Entwicklung: separat standardmäßig 300 Einfügungen/Monat/Konto, konfigurierbar mit FORMULIX_DEV_LIMITE. Gilt für localhost, .localhost-Subdomains, 127.0.0.1, [::1] und .test-Domains. Gültiger Schlüssel bleibt erforderlich.
- Verbrauchssynchronisierung zwischen Prozessen standardmäßig alle 5 Sekunden; kein globaler transaktionaler Zähler pro Anfrage. Der Monat folgt UTC.
Fehler
Anwendungsfehler: JSON { "erro": "message" }. Berechnungsvalidierungen können übersetzte Meldungen liefern.
| HTTP | Bedeutung |
|---|---|
| 400 | Invalid JSON. — ungültiges JSON oder Body ohne Objekt. |
| 401 | Invalid key. — fehlender, ungültiger oder widerrufener Schlüssel. |
| 402 | Monthly insertion limit reached. — Tarif- oder Entwicklungslimit. |
| 403 | Origin not allowed for this key. — Domain abgelehnt; abgelehnter Preflight eventuell ohne Body. |
| 404 | Unknown route. / Unknown operation. — unbekannte Route oder Operation. |
| 413 | Request too large. — Body über dem Limit. |
| 422 | Ungültige Eingabe; Meldung im Feld erro. |
| 429 | Rate limit reached. — Minutenlimit überschritten. |
| 500 | Internal error. — interner Fehler. |
/saude liefert ohne Authentifizierung { "ok": true }. Dies bestätigt nicht den Dienstzugriff eines Schlüssels.