ForgeCMS
bg

CMS

API на администрацията на CMS на Total.js: управление на сайт от код, архивиране и възстановяване

CMS · cms@8071e48 cmsapiadminbackuprestorepermissions

Всичко, което прави интерфейсът на администрацията, минава през една-единствена крайна точка: POST /admin/ с тяло { "schema": "<name>", "data": { ... } } (API маршрутите на Total.js, вижте API маршрути). Адресът идва от реда $api : /admin/ във файла config. Удостоверете се със сесийната бисквитка (POST /admin/ със schema: "login" и login и password), със заглавката x-token или чрез OpenPlatform (инсталиране и първо стартиране).

Действията

ДобавкаЗаявки (schema)Право
Accountlogin, logout, admin_read, admin_save (име, login, парола), accountсесията
Pagespages_list, pages_read, pages_save, pages_clone, pages_remove, pages_links, pages_html (чете HTML), pages_save_html (id, html, до 5 MB), pages_copy (from, to)pages
Layoutslayouts_list, layouts_read, layouts_save, layouts_clone, layouts_remove, layouts_html, layouts_save_html, layouts_importlayouts
Widgetswidgets_list, widgets_read, widgets_save, widgets_remove, widgets_detailwidgets
Navigationnav_list, nav_read, nav_save, nav_remove, nav_editornavigation
Redirectsredirects_list, redirects_read, redirects_save (url, target, permanent), redirects_removeredirects
Variablesvariables_read, variables_save (vars)variables
Postsposts, posts_read, posts_create, posts_update, posts_remove, posts_clear, posts_categoriesposts
Filesfiles_list, files_rename, files_clear, files_remove, и качванията по-долуfiles
Settingssettings_read, settings_save, settings_test (изпробва настройките за SMTP), chatgptsettings
Dashboarddashboard_online, dashboard_referers, dashboard_browsers, dashboard_pages, dashboard_statsняма

Правото admin (и всеки потребител с флага sa, включително Bot на токена) може да ги използва всички. Заявка без право получава грешка, а login е единствената заявка, която не се нуждае от сесия.

Създайте страница и нейното съдържание:

{ "schema": "pages_save", "data": { "name": "About", "layoutid": "<layout id>", "url": "/about/", "title": "About us" } }
{ "schema": "pages_save_html", "data": { "id": "<page id>", "html": "<h1>About us</h1>" } }

pages_save отговаря с { "success": true }; прочетете идентификатора с pages_list. За layout layouts_save отговаря с идентификатора на layout-а в value. Когато при обновяване липсва поле, полето се изчиства (title, който не изпратите, се записва празен), затова изпращайте целия запис.

Качване на файлове

POST /admin/upload/ приема multipart качване (до 10 MB), а POST /admin/upload/base64/ тяло JSON с data URI (png, jpeg или gif). И двата отговарят със списък от { id, name, type, ext, size, url }, където url е /download/<id>.<ext>.

Архив, възстановяване и изчистване

Три маршрута от controllers/api.js работят върху целия сайт и изискват правото admin:

МаршрутКакво прави
GET /admin/backup/сваля цялото файлово хранилище (метаданни, HTML на страници и layout-и, файлове и публикации) като един текстов файл, наименуван по сайта и датата
POST /admin/restore/качва такъв файл (до 100 MB) и го зарежда.
GET /admin/clear/изтрива съдържанието на сайта. Изоставя файловото хранилище и го зарежда отново, така че страниците, layout-ите, уиджетите и останалото се премахва

Направете архив, преди да изпробвате някой от тях, никога не отваряйте /admin/clear/ в браузър от любопитство и пазете токена в тайна: с него едно-единствено GET изпразва сайта.