A Total.js CMS admin API-ja: webhely kezelése kódból, mentés és visszaállítás
Az admin felület minden műveletét egyetlen végpont intézi: POST /admin/ a { "schema": "<name>", "data": { ... } } törzzsel (a Total.js API útvonalai, lásd API útvonalak). A cím a config fájl $api : /admin/ sorából származik. Hitelesíts a munkamenet-cookie-val (POST /admin/ a schema: "login" értékkel, valamint a login és a password mezővel), az x-token fejléccel vagy az OpenPlatformon keresztül (telepítés és első indítás).
A műveletek
| Bővítmény | Hívások (schema) | Jogosultság |
|---|---|---|
| Account | login, logout, admin_read, admin_save (név, login, jelszó), account | a munkamenet |
| Pages | pages_list, pages_read, pages_save, pages_clone, pages_remove, pages_links, pages_html (beolvassa a HTML-t), pages_save_html (id, html, legfeljebb 5 MB), pages_copy (from, to) | pages |
| Layouts | layouts_list, layouts_read, layouts_save, layouts_clone, layouts_remove, layouts_html, layouts_save_html, layouts_import | layouts |
| Widgets | widgets_list, widgets_read, widgets_save, widgets_remove, widgets_detail | widgets |
| Navigation | nav_list, nav_read, nav_save, nav_remove, nav_editor | navigation |
| Redirects | redirects_list, redirects_read, redirects_save (url, target, permanent), redirects_remove | redirects |
| Variables | variables_read, variables_save (vars) | variables |
| Posts | posts, posts_read, posts_create, posts_update, posts_remove, posts_clear, posts_categories | posts |
| Files | files_list, files_rename, files_clear, files_remove, és az alábbi feltöltések | files |
| Settings | settings_read, settings_save, settings_test (kipróbálja az SMTP-beállításokat), chatgpt | settings |
| Dashboard | dashboard_online, dashboard_referers, dashboard_browsers, dashboard_pages, dashboard_stats | nincs |
Az admin jogosultság (és minden sa jelzőjű felhasználó, beleértve a token Bot-ját is) mindegyiket használhatja. A jogosultság nélküli hívás hibát kap, és a login az egyetlen hívás, amelyhez nem kell munkamenet.
Hozz létre egy oldalt és a tartalmát:
{ "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>" } }A pages_save válasza { "success": true }; az azonosítót a pages_list hívással olvashatod ki. Layout esetén a layouts_save a layout azonosítóját adja vissza a value mezőben. Ha frissítéskor hiányzik egy mező, a mező törlődik (a nem küldött title üresen mentődik), ezért a teljes rekordot küldd el.
Fájlok feltöltése
A POST /admin/upload/ multipart feltöltést fogad (legfeljebb 10 MB), a POST /admin/upload/base64/ pedig JSON törzset data URI-val (png, jpeg vagy gif). Mindkettő { id, name, type, ext, size, url } elemek listájával válaszol, ahol az url értéke /download/<id>.<ext>.
Mentés, visszaállítás és törlés
A controllers/api.js három útvonala a teljes webhelyen dolgozik, és az admin jogosultságot igényli:
| Útvonal | Mit csinál |
|---|---|
GET /admin/backup/ | letölti a teljes fájltárolót (metaadatok, oldalak és layoutok HTML-je, fájlok és bejegyzések) egyetlen, a webhely nevéről és a dátumról elnevezett szövegfájlként |
POST /admin/restore/ | feltölt egy ilyen fájlt (legfeljebb 100 MB), és betölti. |
GET /admin/clear/ | törli a webhely tartalmát. Eldobja a fájltárolót és újra betölti, így az oldalak, layoutok, widgetek és a többi törlődi |
Készíts mentést, mielőtt bármelyiket kipróbálod, soha ne nyisd meg a /admin/clear/ címet böngészőben puszta kíváncsiságból, és tartsd titokban a tokent: vele egyetlen GET kiüríti a webhelyet.