Können Sie eine einfache Open-Source-Bibliothek/-Tool zur Ausführung unter Linux empfehlen, die eine REST-ähnliche API bereitstellt, die im Wesentlichen den Inhalt von SQL-Datenbanken (in Postgres) über HTTP mit benutzerfreundlichen URLs bereitstellt? Python bevorzugt, aber nicht zwingend erforderlich.
zB wenn Sie eine Datenbank mit zwei Tabellen hätten:
employees (id, name, city, dep_id)
departments (id, name)
Ich möchte einfach HTTP-Anfragen senden wie:
GET http://$HOST/employees?city=Paris
GET http://$HOST/employees?dep_id=4&city=Berlin,Paris
GET http://$HOST/departments?name=Legal,Finance
usw. Ich bin flexibel mit der Syntax, die für URLs verwendet werden muss. Aber das Ziel ist es, die manuelle Arbeit zu vermeiden, diese Tabellen durch ORM zuzuordnen und diese dann URLs zuzuordnen usw. Idealerweise ist überhaupt keine Programmierung erforderlich (aber erlaubt, wenn ich ein benutzerdefiniertes Ausgabeformat hinzufügen wollte usw.). Ich verstehe dieses Tool auch nur SELECT
mit eingeschränkten WHERE
Klauseln anbieten konnte .
Sie können den nginx- HTTP-Server in Verbindung mit dem Modul ngx_postgres ausprobieren . ngx_postgres
ermöglicht nginx
die Kommunikation mit PostgreSQL
der Datenbank. Deine Grundvoraussetzungen sind meines Erachtens erfüllt:
ngx_postgres
die Konfiguration muss angegeben werden, um URLs DB-Abfragen zuzuordnen.ngx_postgres
der Webseite).PostgreSQL
als RDBMS.HTTP
Protokoll.nginx
ist leichtgewichtige Software.Sie haben kein Antwortformat angegeben, das Sie an die Clients zurückgeben möchten, aber ngx_postgres
JSON wird unterstützt.
RestifyDB ( http://restifydb.com ) ist eine Lösung. Es ist Open Source und kann kostenlos verwendet werden (es sei denn, Sie benötigen Patches usw., für die eine kommerzielle Version verfügbar ist. Obwohl ich Slash DB ( https://www.slashdb.com/ ) nicht verwendet habe, ist eine andere Lösung, die auf ähnliche Weise funktioniert.
Sandman2 macht genau das, was Sie wollen, in Python und bewirbt sich selbst alsAutomatically generate a RESTful API service for your legacy database. No code required!
Es verwendet SQLAlchemy für Datenbankinteraktionen (und unterstützt jede seiner vielen unterstützten DBs) und bietet nicht nur eine REST-API, sondern auch eine anständige Web-Admin-Oberfläche.
Einmal konfiguriert, sollten Sie in der Lage sein, Abfragen wie http://$HOST/employees?city=Paris
und ähnliches auszugeben, obwohl dies möglicherweise nicht unterstützt wird, http://$HOST/employees?dep_id=4&city=Berlin,Paris
wenn Sie nach mehreren Werten gleichzeitig fragen ... Zu testen!
Kybernard