Scoriet, ein Template gestützter Programmgenerator.
Scoriet (https://www.scoriet.com) ist in Programm dass ich vor längerer Zeit geschrieben habe.
Scoriet ist ein Template gestützter Programmgenerator, nicht wie PHPRunner oder vergleichbare Programme, kann Scoriet ganze App’s vollständig aufgrund von Vorlagen (Templates) generieren. Jede Änderung an den Templates werden registriert und die Vorlagen von Scoriet neu Kompiliert.
Zuerst mit einem einfachen PHP Klassen Generator ausgestattet, entwickelte ich das Konzept weiter und brachte einen PHP API Generator dazu, später kam sogar eine komplette Webseite mit Login usw. dazu. CRUD also create, read, update und delete. Für jede dieser Begriffe erstellt Scoriet eine Seite.
- Eine Startseite mit Menü
- Eine Login-Seite
- Eine Tabelle der Daten
- Ein Formular für die Dateneingabe
- Eine Seite um die Daten zu drucken
Ich mache Scoriet open-source 2017. Das Projekt ist auf GitHub: https://github.com/Harveyhase68/scoriet
Zumindest konnte Scoriet bisher nur PHP generieren, jetzt habe ich Scoriet weiter verbessert und ein neues Template ist dazu gekommen:
Scoriet kann nun auch eine Python Flask REST API generieren.
Die Verbindung zur Datenbank erfolgt über die db_config.py und die eigentliche API ist die api.py. Im Verzeichnis „/tables“ stehen alle Datentabellen der Datenbank (MySQL oder PostgreSQL). api.py liest am Programmstart alle *.py aus und erstellt selbständig eine Route für jede Tabelle. In der .env Datei stehen die Zugangsdaten für die Datenbank. Die functions.py ist für die Ausgabe als JSON zuständig.
Wenn eine users.py im /tables stehen würde, würde Scoriet folgende Routen anlegen:
- /users – GET liest alle users aus, sortiert sie nach der z.B. user_no
- /users/query – POST, erwartet eine JSON datei, wobei query, fields oder orderby gesetzt werden können, damit wird dann das SELECT statement aufgebaut
- /users – POST, hier werden die Daten in die Datenbank per SQL INSERT in die Datenbank geschrieben, erwartet werden Datenfelder im JSON Format.
- /users – PUT, hier werden die Daten geändert, das UPDATE SQL Statement nimmt nur die Daten per JSON und auch nur die Felder die geändert werden sollen. Alle anderen Felder werden nicht geändert. Die ID oder die Nr. wird per URL übergeben.
- /users – DELETE, übergeben Sie die die ID bzw. den eindeutigen Datensatz-Identifier per URL, der Datensatz wird gelöscht.
Was noch fehlt, wäre die API Sicherheit, zumindest die BASIC Authentication hätte ich schon mal gemacht, das müsste ich noch einbauen. Eine weitere Sicherheitsstufe wäre natürlich die Session-ID und ein Token. Aktuell muss ich mich leider wieder um etwas anderes kümmen, ev. kann ja ein anderer Programmierer das für mich machen?? *lieb kuck*
Getestet unter Windows 10 (11 sollte ohne Probleme gehen), die Python REST API ab Python 3.7 auf CentOS 6 und Debian 11.
Wie immer, alle Angaben ohne Gewähr, Anwendung auf eigene Gefahr und Verantwortung, ich übernehme keinerlei Haftung für Ausfälle, Datenverlust oder andere finanzielle Schäden.
Happy coding!