Το API διαχείρισης του CMS του Total.js: διαχειριστείτε έναν ιστότοπο από κώδικα, αντίγραφο ασφαλείας και επαναφορά
Ό,τι κάνει η διεπαφή διαχείρισης περνά από ένα μόνο endpoint: POST /admin/ με σώμα { "schema": "<name>", "data": { ... } } (οι διαδρομές API του Total.js, δείτε διαδρομές API). Η διεύθυνση προέρχεται από τη γραμμή $api : /admin/ του αρχείου config. Ταυτοποιηθείτε με το cookie συνεδρίας (POST /admin/ με schema: "login" και τα login και password), με την κεφαλίδα x-token ή μέσω OpenPlatform (εγκατάσταση και πρώτη εκκίνηση).
Οι ενέργειες
| Πρόσθετο | Κλήσεις (schema) | Δικαίωμα |
|---|---|---|
| Account | login, logout, admin_read, admin_save (όνομα, login, κωδικός), account | η συνεδρία |
| Pages | pages_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 |
| 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, και οι μεταφορτώσεις παρακάτω | files |
| Settings | settings_read, settings_save, settings_test (δοκιμάζει τις ρυθμίσεις SMTP), chatgpt | settings |
| Dashboard | dashboard_online, dashboard_referers, dashboard_browsers, dashboard_pages, dashboard_stats | κανένα |
Το δικαίωμα admin (και κάθε χρήστης με τη σημαία sa, μαζί με το Bot του token) επιτρέπεται σε όλες. Μια κλήση χωρίς δικαίωμα παίρνει σφάλμα, και το 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 }· διαβάστε το id με το pages_list. Για ένα layout, το layouts_save απαντά το id του 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 σελίδων και layouts, αρχεία και αναρτήσεις) ως ένα αρχείο κειμένου με όνομα από τον ιστότοπο και την ημερομηνία |
POST /admin/restore/ | ανεβάζει ένα τέτοιο αρχείο (έως 100 MB) και το φορτώνει. |
GET /admin/clear/ | διαγράφει το περιεχόμενο του ιστότοπου. Απορρίπτει τον χώρο αρχείων και τον φορτώνει ξανά, οπότε οι σελίδες, τα layouts, τα widgets και τα υπόλοιπα αφαιρούντα |
Κάντε αντίγραφο ασφαλείας πριν δοκιμάσετε οποιαδήποτε από αυτές, μην ανοίξετε ποτέ το /admin/clear/ σε πρόγραμμα περιήγησης από περιέργεια και κρατήστε το token ιδιωτικό: με αυτό, ένα μόνο GET αδειάζει τον ιστότοπο.