Admin-API:et i Total.js CMS: hantera en webbplats från kod, säkerhetskopia och återställning
Allt administrationsgränssnittet gör går genom en enda endpoint: POST /admin/ med innehållet { "schema": "<name>", "data": { ... } } (Total.js API-rutter, se API-rutter). Adressen kommer från raden $api : /admin/ i filen config. Autentisera med sessionscookien (POST /admin/ med schema: "login" och login och password), med headern x-token eller via OpenPlatform (installation och första start).
Åtgärderna
| Plugin | Anrop (schema) | Behörighet |
|---|---|---|
| Account | login, logout, admin_read, admin_save (namn, login, lösenord), account | sessionen |
| Pages | pages_list, pages_read, pages_save, pages_clone, pages_remove, pages_links, pages_html (läser HTML), pages_save_html (id, html, upp till 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, och uppladdningarna nedan | files |
| Settings | settings_read, settings_save, settings_test (testar SMTP-inställningarna), chatgpt | settings |
| Dashboard | dashboard_online, dashboard_referers, dashboard_browsers, dashboard_pages, dashboard_stats | ingen |
Behörigheten admin (och varje användare med flaggan sa, inklusive tokenens Bot) får använda alla. Ett anrop utan behörighet får ett fel, och login är det enda anropet som inte behöver en session.
Skapa en sida och dess innehåll:
{ "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 svarar { "success": true }; läs id:t med pages_list. För en layout svarar layouts_save med layoutens id i value. När ett fält saknas i en uppdatering töms fältet (en title som du inte skickar sparas tom), så skicka hela posten.
Ladda upp filer
POST /admin/upload/ tar emot en multipart-uppladdning (upp till 10 MB) och POST /admin/upload/base64/ ett JSON-innehåll med en data-URI (png, jpeg eller gif). Båda svarar med en lista av { id, name, type, ext, size, url }, där url är /download/<id>.<ext>.
Säkerhetskopia, återställning och rensning
Tre rutter i controllers/api.js verkar på hela webbplatsen och kräver behörigheten admin:
| Rutt | Vad den gör |
|---|---|
GET /admin/backup/ | laddar ner hela fillagringen (metadata, HTML för sidor och layouter, filer och inlägg) som en textfil uppkallad efter webbplatsen och datumet |
POST /admin/restore/ | laddar upp en sådan fil (upp till 100 MB) och läser in den. |
GET /admin/clear/ | raderar webbplatsens innehåll. Den släpper fillagringen och läser in den igen, så sidor, layouter, widgetar och resten tas bor |
Gör en säkerhetskopia innan du provar någon av dem, öppna aldrig /admin/clear/ i en webbläsare av nyfikenhet och håll token privat: med den tömmer ett enda GET webbplatsen.