Formulix Dokumentation← Zur Website
Referenz / Formulix 0.1.0

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.

tipoEingabeAusgabe und Verbrauch
formulalatex; optional bloco{ html } mit MathML; 1 Einfügung. Nichtleeres LaTeX bis 20.000 Zeichen.
wordhtml; optional rtf{ html }; 1 pro konvertierter Gleichung, 0 ohne Gleichungen.
graficodados der Graphenoperation{ svg, w, h, funcoes, alt }; 1 Einfügung.
conta / quimicaop und dados; bekannte op außer grafico/wordJe 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

Fehler

Anwendungsfehler: JSON { "erro": "message" }. Berechnungsvalidierungen können übersetzte Meldungen liefern.

HTTPBedeutung
400Invalid JSON. — ungültiges JSON oder Body ohne Objekt.
401Invalid key. — fehlender, ungültiger oder widerrufener Schlüssel.
402Monthly insertion limit reached. — Tarif- oder Entwicklungslimit.
403Origin not allowed for this key. — Domain abgelehnt; abgelehnter Preflight eventuell ohne Body.
404Unknown route. / Unknown operation. — unbekannte Route oder Operation.
413Request too large. — Body über dem Limit.
422Ungültige Eingabe; Meldung im Feld erro.
429Rate limit reached. — Minutenlimit überschritten.
500Internal error. — interner Fehler.

/saude liefert ohne Authentifizierung { "ok": true }. Dies bestätigt nicht den Dienstzugriff eines Schlüssels.