ABES/Objects

Bedienungsanleitungen, Dokumentationen, Lern-Videos

09 Erstellen eines neuen Objektes

aoRestServer/ODATA für ABES/Objects - Hinweise für Frontend-Entwickler

Neue Objekte können erstellt werden, indem ein POST-Request auf die entsprechende kanonische URL der Tabelle durchgeführt wird. 

Eine weitere Möglichkeit besteht darin, einen POST-Request auf die kanonische URL einer Unterkollektion eines Objektes durchzuführen.

Falls bei diesen Requests festgestellt wird, dass der angemeldete User nicht die entsprechenden Rechte hat, wird ein Fehler-Objekt mit dem Http-Resultcode 400 zurückgegeben.

Die beiden grundsätzlich zulässigen URL-Formen werden hier an Beispielen gezeigt.

 

Beispiel: Erstellen eines neuen Personen-Objektes

Request

POST

http://test.server.de/odata/Person

 

Beispiel: Erstellen eines neues Adress-Objektes in der Adress-Kollektion einer vorhandenen Person

Request

POST

http://test.server.de/odata/Person(‘oid_der_person’)/collAdresse

   

 

Bei diesen POST-Requests ist es möglich, ein JSON-Objekt im Body des Requests mitzugeben, das Initialisie-rungswerte für Felder das neu anzulegenden Objektes enthält.
Dabei können nur einfache Felder benutzt werden.

Alle Property-Namen im übergebenen JSON-Objekt, die nicht mit einem einfachen Feld des anzulegenden Objektes korrespondieren, werden ignoriert.
Umgekehrt werden alle Felder des anzulegenden Objektes, für die es keine korrespondierenden Properties im übergebenen JSON-Objekt gibt, auf ihren automatschen Initialisierungswert belassen.

Der Rückgabeumfang wird vom Request “beantragt”.

Falls der Request-Header “Prefer: minimal” gesetzt ist, wird ein leerer Body zurückgegeben und der  Http-Statuscode ist 204 “No Content”.

Es wird ein Location-Header mit der URL des neu erstellten Objektes gesetzt.

 

Beispiel: Rückgabe ist Prefer: minimal

Request

Header    

Prefer: minimal

POST

http://test.server.de/odata/Termin

 

 

Response (Status=204)

Header    

Location: http://test.server.de/odata/Termin(

‘4655502B6451707A3942556A382F502B384339543874’)

Body

[leer]

 

Wird im Request “Prefer: representaion” angefordert, dann wird zusätzlich im Body die vollständige JSON-Repräsentation des neu angelegten Objektes zurückgegeben.
Der Statuscode ist dann 202 “Created”.

 

Beispiel: Rückgabe ist Prefer: representation

Request

Header    

Prefer: representation

POST

http://test.server.de/odata/Termin

 

Response (Status=204)

Header    

Location: http://test.server.de/odata/Termin(

‘4655502B6451707A3942556A382F502B384339543874’)

Body

{

  “@odata.context”: “http://test.server.de/odata/$metadata#Termin”,

  “_OID”: “457677434E45756C4A4E416137575A54302F5A474367”,

  “EXTOID_POSESSOR_DB”: “457677434E45756C4A4E416137575A54302F5A474367”,

  “EXTOID_CREATOR_DB”: “457677434E45756C4A4E416137575A54302F5A474367”,

  “RESTRICTEDFOR_TYP”: 0,

  “EXTOID_RESTRICTEDFOR_OID”: “457677434E45756C4A4E416137575A54302F5A474367”,

  “EXTOID_READONLYFOR_OID”: “457677434E45756C4A4E416137575A54302F5A474367”,

  “_Restricted”: false,

  “_RestrictionInherited”: false,

  “_ReadOnly”: false,

  “_Generation”: -1035455300,

  “Bez”: ” () 17.9.15-17.9.15, 09:00-09:15″,

  “OWNER_TYP”: 0,

  “_OWNER_OID”: “457677434E45756C4A4E416137575A54302F5A474367”,

  “_ObjectOwnerOID”: “457677434E45756C4A4E416137575A54302F5A474367”,

  “_ObjektKopie”: false,

  “ZeitVon”: “09:00:00.000”,

  “ZeitBis”: “09:15:00.000”,

  “Notizen”: null,

 

  “OID_ABLAGE”: “457677434E45756C4A4E416137575A54302F5A474367”,

  “OID_SV_IMPORT”: “457677434E45756C4A4E416137575A54302F5A474367”,

  “OID_EigeneAblage”: “457677434E45756C4A4E416137575A54302F5A474367”,

  “ErstelltAm”: “2015-09-17”,

  “OID_USER”: “457677434E45756C4A4E416137575A54302F5A474367”,

  “SETOID_USER”: “457677434E45756C4A4E416137575A54302F5A474367”,

  “OID_USERGROUP”: “457677434E45756C4A4E416137575A54302F5A474367”,

  “Farbe”: 7972351,

  “OID_ABESITEM”: “457677434E45756C4A4E416137575A54302F5A474367”,

  “TYP_ABESITEM”: 0,

  “KontextTyp”: null,

  “KontextName”: null,

  “Ort”: null,

  “OID_Verteiler”: “457677434E45756C4A4E416137575A54302F5A474367”,

  “privat”: false,

  “IstSerienTermin”: false,

  “SerienTyp”: null,

  “SerienMonatsTag”: 0,

  “SerienDatumsWerte”: null,

  “SerieBis”: null,

  “SerienTermine”: null,

  “Erinnerung”: “ohne”,

  “RemindMinutes”: -1,

  “RemindLookup”: 0

}