-
Notifications
You must be signed in to change notification settings - Fork 6
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Bei Auslieferung durch Api-Gateway funktioniert das direkte Aufrufen von Deep-Links nicht mehr #80
Comments
Das ist jetzt zwar für dieses Repo etwas off topic, aber es passt zum Issue, da die Lösung hierfür definitiv im Gateway liegt. Ich denke wir sollten hier auf Spring Cloud Gateway in der Version 2.0 umsteigen (ist aktuell noch ein Milestone Release). Das ist extrem schön konfigurierbar. Ich könnte mir vorstellen, dass oder schon die Lösung bringen. |
Ich habe das analysiert und zwei mögliche Lösungen gefunden: Option 1: Zuul mit Hash-Links
... (neu: das #)
Nachgestellt in Branch _#80 in lhm_animad_admin_html5 und lhm_animad_admin_api_gateway. Option 2: Spring Cloud Gateway mit RewritePath-Rule
Dabei wird der Pfad /enclosures-view/... umgeschrieben auf / und dann an index.html weitergeleitet. Warum es trotzdem funktioniert, dass man direkt in der enclosures-view landet, ist mir nicht 100% klar (eigentlich müsste ja der Pfad nach der Rewrite-Logik verloren gehen). Nachteile
Beim Recherchieren, welche Gateway denn "besser" ist, bin ich auf diesen Artikel gestoßen: https://engineering.opsgenie.com/comparing-api-gateway-performances-nginx-vs-zuul-vs-spring-cloud-gateway-vs-linkerd-b2cc59c65369 Nachgestellt in Branch _#80_Alternative in lhm_animad_admin_api_gateway (hier keine Änderungen am Frontend nötig). Mein Vorschlag wäre, bei Zuul und dem o.g. Workaround mit den Hashes zu bleiben. Den kann man zumindest nachvollziehen und man ist nicht darauf festgelegt, vom embedded Tomcat abzuweichen. Was ist eure Meinung? @xdoo @dragonfly28 @ejcsid @Baumfrosch |
Die Optionen sehe ich nicht so. Aus meiner Sicht gibt es folgende Optionen: Option 1: Lösen wir das auf Frontendseite mit # ? Bei Option 1 ist völlig irrelevant, wo die Anwendung deployed ist, bei Option 2 eben nicht. Einen Nachteil sehe ich schon bei Option 1: Man hat immer den # in der URL. |
Es ist richtig, dass es bei der Lösung mit # egal ist, welches Gateway wir benutzen. D.h. meine Option 1 sollte heißen "Hash-Links" (unabhängig vom Gateway). Ansonsten sind das aber genau meine Optionen. Was sind denn die Konsequenzen mit # in der URL, außer das es optisch nicht so schön ist? Bedenken habe ich mit der Nutzung von embedded Netty, was ja eher für die Entwicklungsphase genutzt wird. Wenn wir aber die Hash-Lösung nehmen, könnten wir im Backend - wenn wir das unbedingt wollen - Spring Gateway nutzen und darin trotzdem Tomcat einsetzen. |
Wir haben im letzten AG Meeting entschieden, dass wir die Lösung mit den # verwenden und im Backend erstmal bei Zuul bleiben. Den Frontend-Part habe ich jetzt mal in Pull Request #141 (Branch _#78) eingecheckt, bitte von dort mit übernehmen (nicht aus dem Branch _#80). |
Wurde nach master gemerged und funktioniert jetzt wie beschrieben mit der #-Lösung. Schließe das Issue. |
Wenn man mit
polymer serve
die Anwendung laufen lässt, kann manhttp://localhost:8081/animals-view
aufrufen und refreshen (F5 drücken) und die Seite wird korrekt neu aufgebaut.Wenn man die Anwendung im Api-Gateway deployed und durch diesen ausliefern lässt, führt dies zu einem Fehler. Offenbar versucht das Api-Gateway, eine entsprechende HTML-Seite in diesem Pfad zu finden, die aber nicht existiert...
The text was updated successfully, but these errors were encountered: