2017-08-21 9 views
2

Ich habe eine REST-API, um ein Objekt in eine Nachrichtenwarteschlange (Rabbit MQ) zu verschieben. Mein Product Owner hat mich gebeten, diese API von einer gespeicherten SQL Server-Prozedur aus aufzurufen.Aufruf der REST-API von SQL Server

Ist es ein normaler und guter Weg?

Ist das der richtige Weg? Wenn nicht, was ist die beste Lösung für mein Problem?

Ich weiß, SQL Server kann REST API aufrufen und auch ich weiß, Hochsprachen wie C# sind besser.

und mein Problem ist, wie kann ich meinen Produkteigentümer überzeugen, C# instate von TSQL zu verwenden.

+0

Definieren Sie "mein Problem" bitte. Außerdem habe ich noch nie gehört, dass ein Produkteigner technische Entscheidungen trifft. Oder sprichst du von deinem Produktarchitekten? –

+0

@QualityCatalyst der Product Owner dieses Projekts ist der technische Manager unseres Compay :-( –

+1

In diesem Fall wird er eine gute Erklärung für Sie haben, warum seine Anfrage sinnvoll ist. Vielleicht lohnt sich, diese Details mit uns zu teilen, anstatt nach Argumenten zu fragen C# ist besser BTW, C# ist eine Programmiersprache Sie können einen Dienst nicht von einer Programmiersprache aus aufrufen, sondern einen Dienst, eine App, einen Bot oder eine Webseite schreiben, die einen Dienst anruft ;-) –

Antwort

0

von der Sicherheitsprospekt - es wird nicht empfohlen, die Datenbank direkt aufzurufen, da die Daten aus der API möglicherweise einige Sicherheitsprobleme haben, die behandelt werden müssen, bevor sie auf der Datenbank ausgeführt werden. Zum Beispiel kann es ein Skript haben, das die Daten in der Datenbank löschen kann, wenn Sie es direkt auf dem Datenbankserver ausführen. Sie können es verhindern, wenn Sie es in separater Schicht behandeln.

aus praktischen Gründen - Sie möchten vielleicht die Daten überprüfen, ändern, normalisieren, etc, bevor Sie es in die Datenbank einfügen. von außerhalb der Datenbank wird es einfacher sein, dies zu tun. C# hat viele eingebaute Funktionen, die Ihnen dabei helfen können.

allgemeine gute Praxis - es ist eine gute Praxis, die logische Schicht von der Datenschicht zu trennen.

bessere Unterstützung und einfacher zu pflegen - es ist einfacher, zum Beispiel das Debuggen von der C# -Code als von SQL-Code. Außerdem können Sie Probleme erkennen, bevor sie die Datenbank ruinieren.

hoffe es hilft dir.