Ich schreibe momentan an einem Webservice, der auf dem MVC-Modell basiert. Nun werden die Infos zwischen Programm und Webservice in verschlüsselter Form übertragen. Nun muss ich diese Infos verschlüsseln bzw. entschlüsseln. Nun bin ich momentan am überlegen, wo man diese Logik unterbringt im Controller oder im Model.
Ankündigung
Einklappen
Keine Ankündigung bisher.
[MVC] Daten verschlüsseln & entschlüsseln im Controller oder Model
Einklappen
Neue Werbung 2019
Einklappen
X
-
Stichworte: -
-
Auch wenn deine Frage rhetorischer Natur ist: nichts!
Ich würde für externe Schnittstellen immer mit Input- und Output-Filtern arbeiten, die sich um den verschlüsselten Transport kümmert und bei einem Request die Eingabe in ein DTO oder Domänen-Objekt mappt um über einen Dispatcher an den relevanten Service zu geben (Command Pattern).
Kommentar
-
Ein Großteil des Webservice ist bereits mit dem MVC-Model programmiert. Es geht jetzt nur noch um die Daten-Verschlüsselung
Kommentar
-
Der Nutzer eines Webservices benötigt eine Schnittstelle zum Anwendungskern genauso wie ein Mensch der den Anwedungskern über eine HTML-Seite steuert.Zitat von dr.e. Beitrag anzeigenwarum nutzt du das MVC-Pattern für einen Webservice? Das macht für mich absolut keinen Sinn.
Kommentar
-
Nein!!!1 Immerhin bist Du es, der MVC nicht richtig verstanden hat. Ich weiß das ja schon alles, sogar sehr sehr gut!!!1Zitat von dr.e. Beitrag anzeigenLies dir mal die Rahmenbedingungen des MVC-Pattern durch.
OK, Spaß beseite. Welche Rahmenbedingungen meinst du konkret? Wie ich das sehe steht jemand der einen Webservice anbietet vor den gleichen Problemen wie jemand, der eine Webanwendung ohne Webservice anbietet:- Eingehende Nachrichten sind nicht vertrauenswürdig.
- Das verwendete Protokoll ist zustandslos.
- Abhängig von der ankommenden Anfrage muss eine passende Antwort generiert werden.
- Nicht jeder darf Domänenobjekte auf beliebige Art manipulieren.
Ich sehe bis jetzt keinen Grund, warum MVC für Webseiten geeignet, aber für Webservices ungeeignet sein soll.
Und wo machst du dann Sitzungsverwaltung und Autorisierung?Zitat von dr.e. Beitrag anzeigenTechnisch ist eine API nichts anderes als ein exterene Form der Business-Schicht.
Kommentar
-
wo ist denn bei einer API die View ???Ich sehe bis jetzt keinen Grund, warum MVC für Webseiten geeignet, aber für Webservices ungeeignet sein soll.
Kommentar
-
Dort wo er auch bei anderen Webanwendungen ist. Es geht hier nicht um beliebige APIs, sondern um Webservices.
Kommentar
-
-
Normalerweise schon, aber es ist sehr schwieg, eine Antwort viel vernünftiger zu gestalten als die Frage die sie beantworten soll. Vielleicht bekomme ich es besser hin, wenn du mir sagst, was du an meinem vorletzten Beitrag nicht verstanden hast oder womit du in meinem vorletzen Beitrag nicht einverstanden bist.Zitat von Koala Beitrag anzeigenKannst nicht vernünftig antworten ?
Kommentar
-
Das macht der View.Zitat von Flor1an Beitrag anzeigenJe nach dem was für ein Format genutzt wird (XML/JSON etc) wird nur sowas ausgegeben, ...
Nö, hilft aber.Zitat von Flor1an Beitrag anzeigen... dafür braucht es nicht wirklich eine komplette View Komponente.
Kommentar
-
Hallo momomamu,
wenn du das MVC-Pattern unbedingt in diesen Anwendungsfall pressen möchtest, bist du herzlich eingeladen das zu tun. Bei einer API gilt es jedoch, einen Business-Prozess nach aussen zu repräsentieren. Die Aktionen werden hier in aller Regel durch die Business-komponenten repräsentiert, die mit Domänen-Objekten arbeiten. Hier gibt es keinen Controller im klassichen MVC-Gedanken. Weiterhin ist das Model in einer API einfach ein DTO/Domänen-Objekt, das durch ein Ausgabe-Format repräsentiert wird. Da die Transformation i.d.R. sehr einfach gestrickt ist - z.B. JSON - ist es nicht notwendig einen Controller MVC-einzusetzen. Im Vordergrund einer API stehen weiterhin die Kommandos, die du aufrufen kannst - also das command pattern.
Ich gehe daher davon aus, dass MVC - weil es ein Pattern der Präsentations-Schicht ist - in einer Business-Schicht-getriebenen komponente nichts zu suchen hat.
Was hat das mit pro/contra MVC zu tun? Diese Elemente löst du zentral über einen Wrapper um deinen eigentlichen Webservice-Kern, sprich ein Wrapper um die Business-Komponenten.Und wo machst du dann Sitzungsverwaltung und Autorisierung?
Kommentar

Kommentar