Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

CRUD

Die CRUD-Operationen werden über folgende HTTP-Verben unterstützt:

...

Antwort: 200 OK mit
{
    "resource": [{
        "type": "object",
        "meta": {
            "name": "Land",
            "description": "",
            "properties": [
            {
                "name": "ID",
                "description": "",
                "primary": true,
                "required": true,
                "type": "number"
            },{
                "name": "Bezeichnung",
                "description": "Name",
                "type": "string"
            },{
                "name": "Landadressierung",
                "description": "Darstellung Land \/ PLZ \/ Ort",
                "type": "string"
            }]
        },
       "data": [[1,"Schweiz","CH"]]
    }]

}

 

Update Bezeichnung von auf Land mit der ID 1

...

Die Struktur der Antwort ist identisch zu derjenigen der CRUD-Operationen. Einziger Unterschied ist, dass die "properties"-Sektion durch eine "parameters"-Sektion ersetzt ist.

Gemäss http-Standards wird für die sicheren Methoden ein GET-Aufruf verlangt, allfällige Parameter werden in der URL mitgegeben.

...

Url: http://localhost:8084/rest2/ArtikelMethods/method/GetArtPriceSell?ArticleID=8&CustomerID=0&Quantity=1&Date=2015-07-01&ArticleID=3&CustomerID=0&Quantity=1&Date=2015-07-01

Antwort:

{
    "resource": [{
        "type": "object",
        "meta": {
            "name": "GetArtPriceSell",
            "description": "",
            "parameters": [{
                "name": "Price",
                "desciption": "",
                "required": true,
                "type": "number",
                "cardinality": 1,
                "direction": "out"
            },
            {
                "name": "PriceType",
                "desciption": "",
                "required": true,
                "type": "number",
                "cardinality": 1,
                "direction": "out"
            }]
        },
        "data": [[4.9,40],[38,40]]
    }]
}

...


Das Format der Metadaten wird analog zu den Nutzdaten von Client angefordert. 
Beispiel JSON: Tabelle Adresse: rest.i-ag.ch/Adresse/model
{
    "resource": [{
        "meta": {
            "name": "Adresse",
            "description": "",
            "type": "object",
            "properties": [
            {
                "name": "ID",
                "description": "",
                "primary": true,
                "required": true,
                "type": "number"
            },{
                "name": "ABCEinteilung",
                "description": "ABC-Einteilung",
                "type": "number"
            },{
                "name": "AbladevorschriftID",
                "description": "Abladevorschrift",
                "type": "number",
                "links": [
                {
                    "name": "Abladevorschrift",
                    "resource": "Abladevorschrift",
                    "cardinality": 1
                }]
        },{
            "name": "AdresseIDNachfolger",
            ...
            ...    


Die Metadaten werden so weit als möglich nach Draft 04 von json-schema.org aufgebaut, eine Norm existiert zurzeit noch nicht.

Rückgabestatus und Fehlercodes

Jede Antwort vom Server wird mit einem Statuscode zurückgegeben. Bei Fehlern wird zusätzlich ein Detailtext zurückgegeben, der genauere Auskunft über die Ursache gibt. Folgende Codes sind implementiert:

...

.

...