HTTP API
Базовый цикл: логин → opendb → query
TOKEN=$(curl -s -X POST http://localhost:8080/api/auth/login
-H "Content-Type: application/json"
-d '{"password":"mypass"}' | jq -r .data.token)
curl -X POST http://localhost:8080/api/createdb
-H "X-Token: $TOKEN" --data-urlencode "name=blog"
curl -X POST http://localhost:8080/api/opendb
-H "X-Token: $TOKEN" --data-urlencode "name=blog"
curl -X POST http://localhost:8080/api/query
-H "X-Token: $TOKEN"
-H "Content-Type: application/json"
-d '{"sql":"CREATE TABLE posts (id INT AUTO_INCREMENT PRIMARY KEY, title TEXT, body TEXT)"}'
/api/opendb создаёт .fdb-файл, если его ещё нет — отдельно вызывать /api/createdb для уже существующей базы не обязательно.
Диалекты PostgreSQL/MySQL через HTTP
Тот же транслятор диалектов, что и в wire-протоколе, доступен и через HTTP — удобно, если вы уже ходите по HTTP, но пишете SQL в PG/MySQL-синтаксисе:
-- PG-style:
INSERT INTO users (name) VALUES ($1) RETURNING id;
INSERT INTO users (id, name) VALUES (1, 'Alice') ON CONFLICT (id) DO UPDATE SET name = EXCLUDED.name;
-- MySQL-style:
INSERT INTO users (name) VALUES (?);
INSERT INTO users (id, name) VALUES (1, 'Alice') ON DUPLICATE KEY UPDATE name = VALUES(name);
INSERT IGNORE INTO users ...
REPLACE INTO users ...
Передайте flavor через JSON-тело запроса, ?flavor=mysql в URL, либо заголовок X-SQL-Flavor: mysql.
Метрики
GET /api/metrics (JSON) и GET /metrics (формат Prometheus): filedb_open_databases, filedb_active_sessions, filedb_select_total/_insert_total/_update_total/_delete_total, filedb_auth_attempts_total/_auth_success_total, filedb_table_rows{database, table}.
Похожие страницы
← Назад
ТранзакцииДалее →
Нативные драйверы