Eine leichte Bibliothek, um SQL-Datenbanktabellen über HTTP mit Abfragen verfügbar zu machen?

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 SELECTmit eingeschränkten WHEREKlauseln anbieten konnte .

Übrigens bieten die Programme adminer.php und myphpadmin eine vollständig webbasierte GUI. Allerdings nicht wie oben zugreifen.

Antworten (3)

Sie können den nginx- HTTP-Server in Verbindung mit dem Modul ngx_postgres ausprobieren . ngx_postgresermöglicht nginxdie Kommunikation mit PostgreSQLder Datenbank. Deine Grundvoraussetzungen sind meines Erachtens erfüllt:

  • Keine Programmierung erforderlich. Nur ngx_postgresdie Konfiguration muss angegeben werden, um URLs DB-Abfragen zuzuordnen.
  • Mindestens SELECT mit WHERE-Klauselunterstützung (siehe Beispiele auf ngx_postgresder Webseite).
  • PostgreSQLals RDBMS.
  • HTTPProtokoll.
  • nginxist leichtgewichtige Software.

Sie haben kein Antwortformat angegeben, das Sie an die Clients zurückgeben möchten, aber ngx_postgresJSON wird unterstützt.

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=Parisund ähnliches auszugeben, obwohl dies möglicherweise nicht unterstützt wird, http://$HOST/employees?dep_id=4&city=Berlin,Pariswenn Sie nach mehreren Werten gleichzeitig fragen ... Zu testen!