Architektur Entscheidungen
Entwurf vom 20.01.2015
- Keine _ in keys.
- JSON Properties werden Camelcase geschrieben, also
boMetaId
stattbo_meta_id
(sh.:http://google-styleguide.googlecode.com/svn/trunk/jsoncstyleguide.xml#Property_Name_Format) - UIDs werden durch FQNs ersetzt:
- Statt der UID des BO-Meta wird der Package Name und der Name des BOs genutzt: de_test_Auftrag
- Attribute werden (wenn möglich) nicht voll-qualifiziert (Ausnahme: im den VLP, Layout ML-Regeln) - Siehe Diskussion
- Attribute werden klein am Anfang geschrieben:
de_test_Auftrag_gesamtsumme
- Trennung von technischen und fachlichen Attributen:
- Bei BOs wird der fachliche Inhalt unter dem Key "
attributes
" aufgelistet (früher "bo_values
")
- Bei BOs wird der fachliche Inhalt unter dem Key "
Alle Links werden folgendermaßen gerendert:
"links": { "self": { // key ist das "rel" "href": "http://.../bo_metas/de_test_Auftrag/123", // FQN bei BO "methods": [ "GET", "POST"], // Array }, "bo_meta": { "href": "/bo_metas/de_test_Auftragsposition/", "methods": [ "GET"] } }
- URLs:
- FQN statt UID
- Dependencies:
- URL: FQNs statt UIDs, subforms
Inhalt:
"subforms" : { "de_test_Auftragsposition_auftrag" : {" : { "links": { "self": { "href": "/bo_metas/de_test_Auftrag/123/subforms/de_test_Auftragsposition_auftrag/", "methods": [ "GET", "POST"] }, "bo_meta": { "href": "/bo_metas/de_test_Auftragsposition/", "methods": [ "GET"] } } }, "de_test_Reklamation_Folgeauftrag" : { "self": { "href": "/bo_metas/de_test_Auftrag/123/subforms/de_test_Reklamation_folgeauftrag/", "methods": [ "GET", "POST"] }, "bo_meta": { "href": "/bo_metas/de_test_Reklamation", "methods": [ "GET"] } }, "de_test_Reklamation_Auftrag" : { "self": { "href": "/bo_metas/de_test_Auftrag/123/subforms/de_test_Reklamation_auftrag/", "methods": [ "GET", "POST"] }, "bo_meta": { "href": "/bo_metas/de_test_Reklamation", "methods": [ "GET"] } }, }
- Umbenennungen
cstr
(in ContainerRVO.java) ->constraints
Diskussion:
- Attribute sollten nicht voll-qualifiziert, weil:
- das mehr Traffic erzeugt
- das unübersichtlich aussieht
- Test-Fälle aufwendiger zu erstellen sind.
- Attribute müssen in Layout-ML + VLP Regeln auch zugreifbar sein, insbesondere wenn ein REST Service Client diese Attribute auswertet.
- HAL wird nicht verwendet, wegen der Vermischung von fachlichen und technischen Daten.
- Dependencies oder "subforms"?
- Was ist der key? Der Name des Attributes?
- Status Auflistung muss geändert werden:
- Beachten: Statuswechsel vs. Daten eingeben inkl. Statuswechsel
- URL zum Statuswechsel (ohne Datenänderung), Speichern inkl. Statuswechsel Attribut.
- Offen
- URLs + Inhalt
Überblick
Inhalte