Einfacher Weg zu REST auf SQL Server?

7

Bei der Arbeit läuft eine unserer primären Datenbanken auf MS SQL Server. Ich denke es ist 2008.

Ich treffe es derzeit über UnixODBC und FreeTDS von einem Linux-Host. Leider werden die UnixODBC / FreeTDS von unseren Admins nicht unterstützt, daher liegt es an mir. Für eine langfristige Strategie möchte ich ODBC verlassen und mit SOAP- oder REST-Aufrufen zu HTTP wechseln. Die Installation ist mit HTTP viel einfacher und die meisten Sprachen verstehen es, zumindest Perl, Python und Ruby, in denen ich entwickle.

Wir haben für einige Java-Prozesse eine anständige Anzahl von SOAP-Aufrufen in der Datenbank eingerichtet, sodass wir wahrscheinlich ziemlich einfach darauf umsteigen können. Wir haben auch über REST gesprochen, was mir gefällt, weil es leichter ist. In unseren Datenbankadministratoren sind keine REST-Schnittstellen eingerichtet. Daher habe ich mich gefragt, ob es ein Plugin oder Tool für SQL Server gibt, mit dem einfache REST-Zuordnungen der Tabellen vorgenommen werden können, um den Einstieg zu erleichtern. Ich habe darüber nachgedacht, etwas in Rubys Sinatra zu schreiben, aber das wäre noch eine Sache auf meinem Teller.

Ich habe nach "SQL Server + Rest" gesucht, aber es ist ziemlich offensichtlich, dass die Googles mit dem Wort "REST" das Falsche tun und infolgedessen nichts Wertvolles gefunden haben. Wenn Sie also Erfahrung mit REST haben und der Meinung sind, dass es ein gutes Werkzeug ist, melden Sie sich an.

der Blechmann
quelle
Ich weiß nicht, was REST ist, aber sind Sie sicher, dass Sie genug gesucht werden? blogs.msdn.com/b/sqllive/archive/2008/06/18/… stackoverflow.com/questions/1162780/… stackoverflow.com/questions/4263433/… Folgendes habe ich gefunden :-). Vielleicht kann das helfen.
Marian
1
REST ist eine Möglichkeit, Informationen mithilfe von Webservices und festen Pfaden abzurufen. Eine URL könnte also so aussehen http://somesite/salesorder/3342ab23und ein XML- oder JSON-Element des Kundenauftrags zurückgeben. Das ist nur eine Anleitung, keine feste Regel. Die Idee ist jedoch, auf einfache Weise Informationen zu erhalten, die programmierbar vorhersehbar sind.
Jcolebrand
@ jcolebrand, genau. Oder eine POST-Anforderung http://somesite/salesorder/update/3342ab23mit Parametern, die im Body übergeben werden.
Der Blechmann
1
Oh zu wahr, ich habe vergessen zu erwähnen, dass es die HTML-Verben (GET POST PUT DELETE iirc) mit den CRUD-Aktionen in Verbindung
bringt
@Marian, danke, dass du es versucht hast, aber die habe ich schon gesehen. Ich kann alle REST-Anrufe schreiben, bin aber so wie sie sind sehr beschäftigt. Wenn ich davon ausgehe, dass ein anderes Team dies tut, ist es unwahrscheinlich, dass dies bald geschieht. Aus diesem Grund habe ich speziell nach einem Plugin oder Tool gefragt, das rudimentäre REST-Aufrufe bereitstellen kann.
Der Blechmann

Antworten:

5

Wenn Sie mit SQL Server 2008 R2 arbeiten, empfehlen wir Ihnen, sich das Open Data Protocol (auch als OData bezeichnet) anzusehen . Microsoft hat auch einige FAQs , und es ist eine Java-Client-Bibliothek verfügbar.

Schauen Sie sich auch sqlREST an , das relationale Datenbanken mithilfe von Webdiensten verfügbar macht und mit den meisten Datenbanken mit einem JDBC-Treiber funktioniert.

goric
quelle
Oooooo, vielleicht bist du dort auf etwas. Vielen Dank.
Der Blechmann
2

Hintergrund
Von Wikipedia RESTful API

REST wurde ursprünglich im Zusammenhang mit HTTP beschrieben, ist jedoch nicht auf dieses Protokoll beschränkt. RESTful-Architekturen können auf anderen Protokollen der Anwendungsschicht basieren, wenn sie bereits ein reichhaltiges und einheitliches Vokabular für Anwendungen bereitstellen, das auf der Übertragung eines aussagekräftigen Darstellungszustands basiert. RESTful-Anwendungen maximieren die Nutzung der bereits vorhandenen, genau definierten Schnittstelle und anderer integrierter Funktionen, die vom ausgewählten Netzwerkprotokoll bereitgestellt werden, und minimieren die Hinzufügung neuer anwendungsspezifischer Funktionen.

Aus dem MSDN-Artikel Anti-Patterns, die in N-Tier-Anwendungen vermieden werden sollen

REST oder Representational State Transfer ist eine Art von Webdienst, der immer beliebter wird. Sie fragen sich möglicherweise, was der Unterschied zwischen RESTful-Diensten und benutzerdefinierten Webdiensten ist und warum Sie möglicherweise einen Typ dem anderen vorziehen. Der Hauptunterschied zwischen den beiden Typen besteht darin, dass REST-Services ressourcenzentriert sind, während benutzerdefinierte Services betriebszentriert sind. Mit REST teilen Sie Ihre Daten in Ressourcen auf, geben jeder Ressource eine URL und implementieren Standardvorgänge für diese Ressourcen, die das Erstellen, Abrufen, Aktualisieren und Löschen (CRUD) ermöglichen. Mit benutzerdefinierten Diensten können Sie eine beliebige Methode implementieren. Dies bedeutet, dass der Fokus eher auf den Vorgängen als auf den Ressourcen liegt und diese Vorgänge auf die spezifischen Anforderungen Ihrer Anwendung zugeschnitten werden können.
...
Wenn Sie Ihren Service an die Einschränkungen von REST anpassen können, erhalten Sie viele Vorteile. ADO.NET Data Services in Kombination mit dem Entity Framework erleichtert das Erstellen von RESTful-Diensten und Clients für die Arbeit mit diesen. Das Framework kann RESTful-Services automatisch mehr Funktionen bereitstellen, da die Services nur einem bestimmten Muster folgen müssen.

Implementierung

  • WCF Data Services "ADO.NET Data Services macht Daten, die als Entity Data Model (EDM) -Objekte dargestellt werden, über Webdienste verfügbar, auf die über HTTP zugegriffen wird. Die Daten können mithilfe eines REST-ähnlichen URI adressiert werden. "

    In diesem Dokument wird beschrieben, wie Sie Microsoft® ADO.NET Data Services erstellen und verwenden. Außerdem werden verschiedene Details zu den URI- und Payload-Formaten erläutert. Dieses Dokument ist als Einführung in ADO.NET Data Services gedacht und deckt daher die Kernaspekte der Technologie ab, wobei die Diskussion fortgeschrittener Themen auf Begleitdokumente verschoben wird.

    Das Ziel von Microsoft® ADO.NET Data Services besteht darin, Anwendungen die Bereitstellung von Daten als Datendienst zu ermöglichen, der von Webclients in Unternehmensnetzwerken und über das Internet genutzt werden kann. Ein Datendienst ist über reguläre HTTP-Anforderungen erreichbar, wobei Standard-HTTP-Verben wie GET, POST, PUT und DELETE verwendet werden, um CRUD-Operationen für den Dienst auszuführen. Das vom Dienst verwendete Nutzdatenformat kann von der Anwendung gesteuert werden. Alle Optionen sind jedoch einfache, offene Formate wie JSON und Atom / APP.

    Durch die Verwendung webfreundlicher Technologien eignet sich ADO.NET Data Services ideal als Daten-Backend für Anwendungen im AJAX-Stil, Rich Interactive Applications und andere Anwendungen, die mit Daten arbeiten müssen, die im Internet gespeichert sind.

  • oder für eine vollständig angepasste Version schauen Sie in: Canonical REST Entity Service "Demonstriert einen mit WCF 4 erstellten REST-Service, der die HTTP-Spezifikationen für die Verwendung von GET, PUT, POST, DELETE vollständig erfüllt und Komponententests zum Testen der Konformität enthält."

Andrew Bickerton
quelle
0

Ich arbeite für DreamFactory Software und wir haben etwas, das helfen könnte. DreamFactory ist ein kostenloses Open-Source-REST-API-Backend, das eine Verbindung zu einer beliebigen SQL-Datenbank einschließlich SQL Server herstellt. Schließen Sie die Datenbank an, und Sie erhalten 45 Dienste, die alles erledigen, einschließlich gespeicherter Prozeduren, SQL-Ansichten usw. Die Abfragefilter-API ist sehr umfangreich und verfügt über Reihenfolge, Festschreiben und Zurücksetzen, Paginierung, Filter und verwandte Objekte. DreamFactory 2.0 verfügt auch über SOAP-Konvertierungsfunktionen.

billappleton
quelle
Zu Ihrer Information, SQL Server ist nicht Teil des "kostenlosen" Angebots.
Dbinott