| Auszug |
|---|
|
Nuclos REST Architektur: camelCase, FQN, UID, attributes, links, rel, methods, subforms, JSON-Konventionen. |
Sprache: Deutsch · English
Architektur Entscheidungen (INTERN)
Interne Design-Entscheidungen zur REST-JSON-Struktur – camelCase, FQNs, attributes-Key und Link-Rendering.
| Status |
|---|
| colour | Blue |
|---|
| title | Entwickler |
|---|
|
| Status |
|---|
| colour | Green |
|---|
| title | Stand: Jul 2026 |
|---|
|
| Status |
|---|
| colour | Grey |
|---|
| title | gilt fuer Nuclos 4.2026.x |
|---|
|
| Hinweis |
|---|
|
Interne Design-Entscheidungen (Entwurf 2015) zur Gestaltung der REST-JSON-Struktur. Für die Nutzung des Service ist die REST-Dokumentation maßgeblich. |
Konventionen
- JSON-Properties in camelCase (z.B.
boMetaId statt bo_meta_id), keine Unterstriche in Keys. - FQNs statt UIDs: statt der UID der BO-Meta der Package- und BO-Name (
de_test_Auftrag). - Attribute klein beginnend (
de_test_Auftrag_gesamtsumme) und – wo möglich – nicht voll-qualifiziert (Ausnahmen: VLP, Layout-ML-Regeln). - Trennung technischer und fachlicher Attribute: fachlicher Inhalt unter dem Key
attributes. - Alle Links mit
rel-Key, href und methods-Array; Unterformulare unter subforms.
| Info |
|---|
|
Nicht voll-qualifizierte Attribute wurden bevorzugt, weil sie weniger Traffic erzeugen, übersichtlicher sind und Testfälle vereinfachen. |
Verwandte Seiten
Architektur Entscheidungen
Entwurf vom 20.01.2015
- Keine _ in keys.
- JSON Properties werden Camelcase geschrieben, also
boMetaId statt bo_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")
Alle Links werden folgendermaßen gerendert:
| Codeblock |
|---|
|
"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:
| Codeblock |
|---|
"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:
...
- das mehr Traffic erzeugt
- das unübersichtlich aussieht
- Test-Fälle aufwendiger zu erstellen sind.
...
- Was ist der key? Der Name des Attributes?
...
- Beachten: Statuswechsel vs. Daten eingeben inkl. Statuswechsel
- URL zum Statuswechsel (ohne Datenänderung), Speichern inkl. Statuswechsel Attribut.
- Offen
...