Info
Innehåll

Allmänt API: Åtgärdstyper

auth

För att autentisera användaren, använd autentiseringstyp. Med din begäran, skicka användarnamn och lösenord så får du en autentiseringstoken som svar. Token kan sedan användas för att behandla efterföljande förfrågningar.

Ingångsexempel:

{
  "action":     "auth",
  "accessType": 0|1|2|...,
  "kname":      "...",     //Username
  "kpass":      "...",     //Password
  "2fa":        "...",     //optional
  "longlife":   0|1 ,      //optional
  "api_key":    ""         //optional
}

Utgångsexempel:

{
  ...
  "data":
  {
    "kmd":"token"
  }
}

Spara värdet som finns under kmd och skicka det i alla efterföljande samtal till API: et som inmatningsvärde kmd.

Observera: Vid tvåfaktorautentisering, samtalet till auth kommer att returneras i en felkod beroende på autentiseringsmetoden om 2fa skickades inte. Om så är fallet måste du visa en tvåfaktorautentiseringssida för användaren som matchar felkoden (t.ex. för att ange e-postkoden eller OTP). Använd token (kmd) som du fick och använder åtgärder verifyauth för att (åter-) skicka 2fa-koden.

verifiera

Handlingen verifyauth kan användas för att antingen verifiera om en token (kmd) fortfarande är giltig och / eller för att skicka in en 2fa-kod för tvåfaktorautentisering.

Ingångsexempel:

{
  "action":     "verifyauth",
  "accessType": 0|1|2|...,
  "token":        "...",     //Token from auth  
  "2fa":        "...",     //2fa code    
}

Utgångsexempel:

{
  ...
  "data":
  {
    "kmd":"token"
  }
}

Spara värdet som finns under kmd och skicka det i alla efterföljande samtal till API: et som inmatningsvärde kmd.

rättigheter

Åtgärdstyp rights kan användas för att få en översikt över modeller och åtgärder som användaren har rätt till åtkomst till.

Ingångsexempel:

{
  "action":     "rights",
  "accessType": 0|1|2|...,
  "token":      "..."
}

Utgångsexempel:

{
  ...
  "data":
  [
    {
      "model":   "User",
      "actions": ["get","list","update"]
    },
    {
      "model":   "Subaccount",
      "actions": ["get","list","update","create","delete","deleteinfo"]
    }
  ]
}

lista

Åtgärdstypen list kan användas för att begära en lista med poster av en specifik modell från databasen. Den här åtgärdstypen är avsedd att användas för att erbjuda en användaröversikt över objekt (snarare än att visa specifika detaljer).

Förväntat ingångsexempel:

{
  ... 
 "model":   "...",  
 "action":  "list",
 "filters": [...],      // Filters to apply, see description (optional)
 "limit":   100,        // Limit of output rows (optional)
 "offset":  0,          // Start index of first row (optional)
 "order":   "...",      // Column to sort (optional)
 "sort":    "asc|desc", // Sorting direction of output (optional) 
 "cols":    [...]       // If set, will output the named fields, otherwise a default set of fields will be shown
}

Utdataexempel på svar:

{
  "status":     "Success",
  "statuscode": 0,
  "msg":        "Erfolgreich",
  "model":      "Subaccount",
  "action":     "list",
  "data":       
  {
    "data":    
    [
      {
        "id":  "542",
        "row": 
        [
          "542",
          "aaa",
          "Aktiv"
        ]
      },
      {
        "id":  "543",
        "row": 
        [
          "543",
          "bbb",
          "Aktiv"
        ]
      }
    ],
    "head":    
    [
      {
        "headlineType": "string",
        "headline":     "ID",
        "colsort":      false,
        "colorder":     "intID"
      },
      {
        "headlineType": "string",
        "headline":     "Nutzername",
        "colsort":      false,
        "colorder":     "strLogin"
      },
      {
        "headlineType": "string",
        "headline":     "Status",
        "colsort":      false,
        "colorder":     "intStatus"
      }
    ],
    "caption": "User",
    "count":   2,
    "total":   2
  }
}

Utdata består av en data array och motsvarande head array. Datamatrisen innehåller de rader som ska visas för användaren. Head array kommer att innehålla specifik rubrikinformation (t.ex. sortering, rubriktext och så vidare) för varje kolumn i tabellen.

Ovanstående exempeldata skulle resultera i att följande tabell visas:

filter

Vårt filters egenskap i begäran JSON kan användas för att söka efter specifika objekt eller minska output-listan. De filters fastigheten består av en rad filterartiklar. Varje artikel är ett objekt med följande struktur:
{
"fieldname": "...", // Field the filter should apply to
"comparison": "...", // (optional) Comparison type, see description
"value" : "..." // Value to compare the field to
}

För att söka i alla fält, fältnamnet query kan användas.

Möjligt comparison värden är:

Jämförelsetyp Beskrivning
eql Likvärdig. Hitta rader där innehållet i fieldname är exakt samma som value. (Den här typen är standard om comparison används inte i objektet.)
lt Lägre än. Hitta rader där innehållet i fieldname är mindre än value.
gt Större än. Hitta rader där innehållet i fieldname är större än value.
lte Lägre än / lika. Hitta rader där innehållet i fieldname är mindre än value eller lika med value.
gte Större än / lika. Hitta rader där innehållet i fieldname är större än value eller lika med value.
like Innehåller. Hitta rader var value ingår i innehållet i fieldname (helt eller delvis).
in Finns i listan. Hitta rader där innehållet i fieldname är exakt samma som en av value. I detta fall value borde vara en matris.
is Är inget. Hitta rader där innehållet i fieldname is NULL.
isnot Är inte NULL. Hitta rader där innehållet i fieldname är inte NULL.

Exempelvis:

{
  ...
  "filters":
  [
    {
      "fieldname": "age",
      "comparison": "gte",
      "value" : 27
    },
    {
      "fieldname": "lastname",
      "comparison": "like",
      "value" : "man"
    }
  ]
}

... hittar rader där age är lika med eller större än 27 och lastname innehåller mannen (t.ex. Hofmann eller Superman eller Mandy)

skaffa sig

Åtgärdstypen get kan användas för att begära en eller flera poster av en specifik modell från databasen när ID: n för posterna redan är kända. Den avsedda användningen av denna åtgärdstyp är för att visa data i ett formulär för redigering. Därför kommer svaret också att ge detaljerad information om varje fält.

Förväntat ingångsexempel:

{
  ... 
 "model":   "...",  
 "action":  "get",
 "ids":     [...]  // Array of IDs
 }

Skicka ett tomt utbud av ids för att endast få fältdefinitionen. Detta kan hjälpa dig att skapa en ny post baserat på fältdefinitionen.

Utdataexempel på svar:

{
  "status":     "Success",
  "statuscode": 0,
  "msg":        "Erfolgreich",
  "model":      "Subaccount",
  "action":     "get",
  "data":       
  {
    "fields":     
    [
      {
        "fieldname":    "intID",
        "displayname":  "ID",
        "type":         2,
        "subtype":      8,
        "required":     true,
        "defaultvalue": null,
        "disabled":     false,
        "infotext":     false,
        "value":        "542",
        "displayvalue": "",
        "listkeys":     [],
        "listvalues":   []
      },
      {
        "fieldname":    "strLogin",
        "displayname":  "Nutzername",
        "type":         1,
        "subtype":      0,
        "required":     true,
        "defaultvalue": null,
        "disabled":     false,
        "infotext":     false,
        "value":        "aaa",
        "displayvalue": "aaa",
        "listkeys":     [],
        "listvalues":   []
      },
      {
        "fieldname":    "strPass",
        "displayname":  "Passwort",
        "type":         1,
        "subtype":      5,
        "required":     true,
        "defaultvalue": null,
        "disabled":     false,
        "infotext":     false,
        "value":        "%%unchanged%%",
        "displayvalue": "********",
        "listkeys":     [],
        "listvalues":   []
      },
      {
        "fieldname":    "intStatus",
        "displayname":  "Status",
        "type":         2,
        "subtype":      1,
        "required":     false,
        "defaultvalue": null,
        "disabled":     false,
        "infotext":     false,
        "value":        "1",
        "displayvalue": "Aktiv",
        "listkeys":     [ 0, 1 ],
        "listvalues":   [ "Inaktiv", "Aktiv" ]
      }
    ],
    "caption":    "User: aaa",
    "groups":     [],
    "ids":        [ 542 ],
    "canDelete":  true,
    "canSave":    true,
    "canSaveNew": true
  }
}

Ovanstående exempel kan resultera i en form som ser ut så här:

skapa

För att skapa nya entrees kan du använda åtgärdstypen create.

Förväntat ingångsexempel:

{
  "action":     "create",
  "accessType": 1,
  "model":      "Subaccount",
  "ids":        [],
  "data":       {
    "intID":     "0",    
    "strLogin":  "new User",
    "strPass":   "ABCabc123!",
    "intStatus": "1"
  }
}

Resultatet av en framgångsrik uppdatering motsvarar exemplet som ges för get åtgärdstyp. Outputexempel:

{
  "status":         "Success",
  "statuscode":     0,
  "msg":            "Erfolgreich",
  "model":          "Subaccount",
  "action":         "get",
  "previousAction": "create",
  "data":           
  {
    "fields":     [...],
    "caption":    "User: new User",
    "groups":     [],
    "subgroups":  [],
    "ids":        [ 544 ],
    "canDelete":  true,
    "canSave":    true,
    "canSaveNew": true
  }
}

uppdatering

För att ändra en eller flera befintliga entires kan du använda åtgärdstypen update.

Förväntat ingångsexempel:

{
  "action":     "update",
  "accessType": 1,
  "model":      "Subaccount",
  "ids":        [ 542 ],
  "data":       
  {
    "intID":     "542",
    "strLogin":  "aaa",
    "strPass":   "abcabc",
    "intStatus": "1"
  }  
}

Resultatet av en framgångsrik uppdatering motsvarar exemplet som ges för get åtgärdstyp. Outputexempel:

{
  "status":         "Success",
  "statuscode":     0,
  "msg":            "Erfolgreich",
  "model":          "Subaccount",
  "action":         "get",
  "previousAction": "update",
  "data":           
  {
    "fields":     [...],
    "caption":    "User: aaa",
    "groups":     [],
    "subgroups":  [],
    "ids":        [ 542 ],
    "canDelete":  true,
    "canSave":    true,
    "canSaveNew": true
  }
}

I händelse av ett uppdateringsfel svarar systemet med ett felmeddelande så här:

{
  "status": "Error",
  "statuscode": 113,
  "msg": "Update error, see error message. Field specific messages see response.data",
  "model": "Subaccount",
  "action": "update",
  "data": 
  {
    "strLogin": "Wert muss mindestens 6 Zeichen lang sein",
    "strPass":  "Wert muss Sonderzeichen beinhalten"
  }
}

radera

Åtgärdstypen delete kan användas för att radera en eller flera poster av en specifik modell från databasen när ID: n för posterna redan är kända.

Förväntat ingångsexempel:

{
  ... 
 "model":   "...",  
 "action":  "delete",
 "ids":     [...]  // Array of IDs
 }

Utdataexempel på svar:

{
  "status":         "Success",
  "statuscode":     0,
  "msg":            "Erfolgreich",
  "model":          "Subaccount",
  "action":         "create",
  "previousAction": "delete",
  "data":           
  {
    "fields":     [...],
    "caption":    "User: new User",
    "groups":     [],
    "subgroups":  [],
    "ids":        [  ],
    "canDelete":  true,
    "canSave":    true,
    "canSaveNew": true
  }
}
Tillbaka till toppen