-
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
OPTIONS Methode für den Objektlink #129
Comments
Warum auch die keepers? |
Die Fachlichkeit ist an dieser Stelle völlig irrelevant. |
Sehe ich nicht so. Zur Referenzimplementierung gehört auch, dass nur die Relationen zur Auswahl angezeigt werden die modelliert und generiert wurden. |
Mag sein - ich sehe das anders. Das Issue ist neutral formuliert und mit einem fiktiven Beispiel veranschaulicht. Das bekommt @rowe42 schon hin. |
Ich muss es aber erstmal verstehen. Und für mein Verständnis wäre schon interessant : in unserem konkreten Beispiel wäre keepers nicht drin, oder? |
Ja. Da kommen immer nur die Relationen des Objektes rein.
Am 26.01.2018 17:32 schrieb "rowe42" <notifications@github.com>:
… Ich muss es aber erstmal verstehen. Und für mein Verständnis wäre schon
interessant : in unserem konkreten Beispiel wäre keepers nicht drin, oder?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
<#129 (comment)>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/AArgz1bjz_wKsaLC2jgzLBvpjwO41lIaks5tOf4xgaJpZM4Rt524>
.
|
Fiktive Beispiele wären besser an fiktiven Entitäten und Relationen erklärt. Das hier sorgt - wie zu sehen ist - nur für Verwirrung. |
Ich stelle hier mal zur Diskussion, ob die OPTIONS-Methode überhaupt der richtige Weg ist, um Relationen abzufragen. Spring HATEOAS unterstützt per Default diese Methode und liefert dazu die möglichen (erlaubten) HTTP-Operationen für den angegebenen Link. Beispiel:
liefert im Header folgende Info über die angefragte URL:
... und keinerlei weiteren Content. Mit dieser Anpassung würden wir die grundlegende Semantik dieser Schnittstelle ändern und das Standardverhalten ändern. Ich konnte dazu kein Beispiel finden, gibt es hier Best Practices, dass man mit OPTIONS solche Informationen abrufen soll? |
Ich muss zugeben mir kommt das auch seltsam vor. Normaler wäre, nach dem POST einen http 201 created sowie im body das gerade erstellte Objekt inklusive aller links zurück zu geben, oder? |
Also, Allerdings bekomme ich es aktuell nicht hin: Eine andere Variante besteht darin, einfach auf Spring Core >=4.3 zu wechseln, da sind die OPTIONS standardmäßig aktiviert (habe ich in einem separaten Projekt ausprobiert). Nur habe ich stundenlang versucht, admin_service zu heben, aber bekomme diverse Probleme mit Hibernate und Lucene. Ich habe in Branch _#129 mal etwas eingecheckt. Wenn man ein DELETE (anstatt eines OPTIONS) auf /enclosures macht, kommen die URLs wie oben gefordert.
In dem Branch sind in Klasse MicroServiceApplication auch die Optionen 2 und 3 implementiert. Ihr könnt gerne anschauen, ob ich da was falsch gemacht habe. |
Habe das jetzt mal vorerst in Branch _#156 (Pull Request #182) so per Workaround gelöst, dass ich statt OPTIONS hier mal GET aufrufe - da sind die benötigten Links auch drin und die (irrelevante) Payload im Showcase nicht so wahnsinnig groß... |
Habe den Workaround nochmal umgebaut - das oben war nämlich der falsche GET-Request.
Ist mitterweile im master. Auch die entsprechende Verarbeitung im Frontend. Werde das umbauen, sobald es geht. So lange bleibt das Issue offen. |
Ich kann das hier erst dann fixen, wenn das Backend auf die neue Spring-Version hochgezogen ist - also in der Version aus dem Generator. D.h. erst in KW 13. Was ich aber bereits ausprobiert habe:
Dann kann man zwar die Options unter |
Habe dies hier nun direkt im Barrakuda gefixt. Ist bereits von @a52team in den Branch polymer-ui2 übernommen worden. |
Wenn man ein neues Objekt für eine Entität erstellen will, so hat man keine Kontextinformationen zur Verfügung. Diese bekommt man erst durch einen Request un der entsprechenden Payload. Aktuell gibt es dafür keinen Endpoint. Es wird deshalb im Backend für jeden
ein 'OPTIONS' Endpunkt erstellt werden, der dann Informationen zu den Objektrelationen zurück liefert. Beispiel für folgenden Aufruf:
OPTIONS http://animad.mocklab.io/enclosures
gibt dann folgendes zurück:
The text was updated successfully, but these errors were encountered: