Home › Forum › Nuclos Konfiguration › Sonstiges › Diskussion: REST Service und Webclient
- Dieses Thema hat 1 Antwort und 2 Teilnehmer, und wurde zuletzt aktualisiert vor 3 Jahren, 2 Monaten von
caf.
-
AutorBeiträge
-
3 Mai 2014 um 22:34 Uhr #7622
Papa Schlumpf
TeilnehmerHallo,
ich weiß, dass es den REST Service hauptsächlich wegen des Webclienten gibt (und auch, dass er noch nicht fertig ist), fände es aber generell sinnvoll, wenn man ihn auch als Schnittstelle zu externen Programmen verwenden könnte. Heute habe ich die neue Nuclos 4.2.2 BETA installiert und damit zum ersten mal eine neuere Version als 4.0 verwendet. Ich muss sagen, die Änderungen seit 4.0 gefallen mir gar nicht. Die Schnittstelle wird immer mehr auf den Webclienten zugeschnitten, was eine andere Verwendung sehr schwierig macht. Deshalb wollte ich hier einmal beschreiben, was meiner Meinung nach besser sein könnte. Vielleicht kann ich Sie ja überzeugen.
Ich werde alles an einer Entität „Auftrag“ erklären, die eine Unterentität „Auftragsposition“ hat.
Problem 1: Layout und Metadaten werden vermischt.
In der neuen Version werden Metadaten so strukturiert, wie es im Layout der Fall ist. Es gibt eine Eigenschaft `_tabs`. Felder des Auftrags sind darin in Einträgen mit `type: „DETAIL“` zu finden. Unterformulare sind in Einträgen mit `type: „SUBFORM“` zu finden. Dabei ist der Name des Subforms die Beschriftung des Tabs im Layout. In meinem Fall bspw. „Positionen“. In 4.0 war das noch anders. Dort wurden die Felder der Entität in `_fields` abgelegt, die Subformulare in `_subforms`. Der Eintrag für das Unterformular war auch nach dem Referenzfeld benannt, was ich logisch finde, denn so ist es auch in der Nuclos API. Dort gibt es z.B. `auftrag.getAuftragsposition()`.
Ich denke die neue Struktur macht keinen Sinn. So wie es früher war sind alle Informationen an einer logischen Stelle und vor allem unabhängig vom Layout. Ich finde, die Metadaten mit den Daten auszuliefern macht Sinn, da man ohne die Daten nicht verwenden kann. Das Layout braucht man aber nicht unbedingt. Deshalb fände ich es sinnvoller, wenn Metadaten so ausgeliefert werden wie in 4.0 und es eine weitere Route gibt, über die man Informationen über das Layout abfragen kann. Die beiden zusammenzubringen sollte dann Aufgabe des Clienten sein.
Problem 2: Ebenfalls Vermischung von Layout und Metadaten, aber ein wenig anders.
Mein Layout für die Auftragsposition hat ein Feld für die Referenz zum Auftrag. Dieses ist allerdings deaktiviert. Der REST Service macht nun Folgendes: er gibt an, dass das Attribut readonly ist, obwohl das nicht stimmt. Der angemeldete Benutzer hat das Recht, dieses Feld zu bearbeiten, nur will ich nicht, dass er das über das Layout tut.
Ich habe nun keine Möglichkeit, dieses Attribut per REST zu ändern. Wenn ich das tun will muss ich das entsprechende Steuerelement im Layout aktivieren. Tatsächlich habe ich dieses Verhalten bereits als Fehler gemeldet, weil es völlig unverständlich ist. Siehe dazu NUCLOS-3133.
Auch hier gehört die Information, dass die Eigenschaft nicht bearbeitbar ist ins Layout. Die `readonly` Information sollte angeben, ob der Benutzer das Recht hat, dieses Feld zu ändern oder nicht.
Zusammenfassung: Ich bin sehr dafür, dass der REST Service mit anderen Anwendungen im Hinterkopf weiterentwickelt wird. Insbesondere sollten die Informationen logisch und sinnvoll strukturiert werden und nicht so, wie es der Webclient gerade braucht. Ich glaube es gibt viele tolle Dinge, die man mit einer externen Schnittstelle bauen könnte. Es wäre toll, wenn Sie darüber nachdenken. Vielen Dank.
Ein kleiner Nachtrag: Felder werden aktuell auch als `readonly` markiert, wenn das entsprechende Feld im Layout Regeln besitzt. Das mag ja in Ordnung sein, wenn der Webclient die Regeln noch nicht implementiert hat, aber deshalb sollte das Speichern dieses Feldes nicht komplett unterbunden werden. Die Anfrage wird auch angenommen, nur die Änderung an diesem Feld wird kommentarlos ignoriert.
Felder, die nicht im Layout vorhanden sind werden genauso ignoriert. Es hilft nicht einmal, das Feld unsichtbar ins Layout einzufügen. Man hat keine andere Möglichkeit, als Felder, die für den Benutzer einen völlig unverständlichen Inhalt haben sichtbar zu machen.
21 September 2020 um 09:45 Uhr #26193caf
AdministratorHallo zusammen,
wir haben den REST Service nochmals grundlegend überarbeitet.
Am besten die aktuelle Version nutzen.VG
Agni -
AutorBeiträge