Перайсці да зместа

HTTP API

Шляхі адносныя да /admin/<app>/<model>/sheet/. Усе пункты выкарыстоўваюць сесіі Admin і праверкі доступу. Змены патрабуюць CSRF і application/json. Адказы маюць Cache-Control: no-store.

Чытанне даных

GET schema/ вяртае бачныя палі, магчымасць рэдагавання, бяспечныя віртуальныя калонкі і магчымасці.

GET rows/ прымае q, JSON filter, JSON sort, offset, limit і JSON columns — парадак паказу палёў. Адказ утрымлівае радкі {pk,version,values}, snapshot, нармалізаваны стан, UTC today, count (або null) і has_next.

Прыклад фільтра
{"and":[{"field":"stock","op":"lt","value":10},{"field":"status","op":"eq","value":"ready"}]}

Фільтры падтрымліваюць AND/OR і eq, ne, lt, lte, gt, gte, in, not_in, isnull, contains. Шляхі ORM і ўласныя lookups забароненыя. Парадак: [{"field":"price","dir":"desc"}]; дадаткова выкарыстоўваецца PK для стабільнасці.

Захаванне

POST save/:

{
  "snapshot":"snapshot-uuid",
  "view_state":{"q":"","filter":{},"sort":[],"offset":0,"limit":200,"columns":["name","price"]},
  "idempotency_key":"client-generated-unique-key",
  "changes":[{"pk":"42","version":"loaded-row-fingerprint","values":{"price":"=[price]*1.07"}}]
}

Падстаўляйце рэальныя здымак, стан і версію з загрузкі. Кожны запіс сустракаецца адзін раз; усе палі радка правяраюцца разам. Запыт атамарны. Запіс вызначаецца PK, не нумарам радка. Decimal перадаецца тэкстам, даты — ISO 8601. Невядомыя і забароненыя палі яўна адхіляюцца.

Пасля страты адказу паўтарыце дакладна той жа запыт з тым жа ключом. Іншыя даныя з тым жа ключом даюць 409. Пасля выдалення аперацыі ключ выходзіць за акно захоўвання ідэмпатэнтнасці.

Масавы план

POST bulk/preview/ прымае {idempotency_key,state,assignments,selection,snapshot}. state выкарыстоўвае правілы rows. assignments супастаўляе палям канстанты або формулы. selection: null выбірае ўсе супадзенні, спіс PK — радкі пазначанага здымка. Прагляд не змяняе бізнес-мадэлі.

POST bulk/run/ прымае {"operation":"operation-uuid"} — яўнае пацвярджэнне нязменнага плана. Паўтор не паўтарае эфект.

Справаздачы і кіраванне

Метад Шлях Прызначэнне
GET operations/<uuid>/?offset=0 Статус, лічыльнікі і да 200 бачных элементаў
POST operations/<uuid>/cancel/ {}, адмена толькі аўтарам
POST operations/<uuid>/resume/ {}, працяг толькі аўтарам
GET history/?offset=0 Да 20 аперацый, патрэбнае права гісторыі

Для наступнай старонкі элементаў выкарыстоўвайце next_offset: ён улічвае схаваныя радкі. Before/after ўтрымліваюць толькі палі, бачныя цяпер. Чытанне чужой аперацыі таксама патрабуе права гісторыі.

Памылкі

Фармат: {error:{code,message,pk?,field?,details?}}. Калі абмежаванне БД немагчыма надзейна звязаць з полем, памылка адносіцца да радка.

HTTP Прычына
400 Разбор або праверка
403 Недастатковыя правы
404 Недаступная аперацыя або мадэль
409 Канфлікт версіі, здымка, пацвярджэння або ключа
413 Завялікі запыт
429 Мяжа частаты
503 Занятая БД, чарга або налады

Пасля няўдалага захавання кліент мусіць пакідаць лакальны буфер.