Info
Content

Algemene API: actietypen

auth

Gebruik het actietype auth om de gebruiker te authenticeren. Stuur bij uw verzoek de gebruikersnaam en het wachtwoord mee en u ontvangt een authenticatietoken als reactie. Het token kan vervolgens worden gebruikt om volgende verzoeken te verwerken.

Invoervoorbeeld:

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

Uitvoervoorbeeld:

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

Sla de gevonden waarde op onder kmd en stuur het in alle volgende aanroepen naar de API als invoerwaarde kmd.

Let op: in het geval van Two Factor Authentication, de oproep naar auth zal terugkeren in een foutcode, afhankelijk van de authenticatiemethode als 2fa is niet verzonden. Als dat het geval is, moet u een Two Factor Authentication-pagina aan de gebruiker laten zien die overeenkomt met de foutcode (bijvoorbeeld voor het invoeren van de e-mailcode of OTP). Gebruik het token (kmd) die u heeft ontvangen en actie ondernemen verifyauth om de 2fa-code (opnieuw) in te dienen.

verifieerauth

De actie verifyauth kan worden gebruikt om te verifiëren of een token (kmd) nog geldig is en / of om een ​​2fa-code in te dienen voor tweefactorauthenticatie.

Invoervoorbeeld:

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

Uitvoervoorbeeld:

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

Sla de gevonden waarde op onder kmd en stuur het in alle volgende aanroepen naar de API als invoerwaarde kmd.

rechten

Actie type rights kan worden gebruikt om een ​​overzicht te krijgen van modellen en acties waartoe de gebruiker toegangsrechten heeft.

Invoervoorbeeld:

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

Uitvoervoorbeeld:

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

lijst

Het actietype list kan worden gebruikt om een ​​lijst met vermeldingen van een specifiek model uit de database op te vragen. Dit actietype is bedoeld om te worden gebruikt om een ​​overzicht van items aan een gebruiker te bieden (in plaats van specifieke details te tonen).

Verwacht invoervoorbeeld:

{
  ... 
 "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
}

Uitvoervoorbeeld van reactie:

{
  "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
  }
}

De uitvoergegevens bestaan ​​uit een data array en een bijbehorende head-array. De gegevensmatrix bevat de rijen die aan de gebruiker moeten worden weergegeven. De head-array bevat de specifieke headline-informatie (bijvoorbeeld sortering, headline-tekst enzovoort) voor elke kolom van de tabel.

De bovenstaande voorbeeldgegevens zouden ertoe leiden dat de volgende tabel wordt weergegeven:

filters

filters eigenschap in het verzoek JSON kan worden gebruikt om naar specifieke items te zoeken of om de uitvoerlijst te verkleinen. De filters eigenschap bestaat uit een reeks filteritems. Elk item is een object met de volgende structuur:
{
"fieldname": "...", // Field the filter should apply to
"comparison": "...", // (optional) Comparison type, see description
"value" : "..." // Value to compare the field to
}

Om in alle velden te kunnen zoeken, moet de veldnaam query kunnen worden gebruikt.

Mogelijk comparison waarden zijn:

Vergelijkingstype Omschrijving
eql Gelijk. Zoek rijen met inhoud van fieldname is precies hetzelfde als value. (Dit type is standaard als comparison wordt niet gebruikt in het object.)
lt Lager dan. Zoek rijen met inhoud van fieldname is kleiner dan value.
gt Groter dan. Zoek rijen met inhoud van fieldname groter dan value.
lte Lager dan / gelijk. Zoek rijen met inhoud van fieldname is kleiner dan value of gelijk aan value.
gte Groter dan / gelijk. Zoek rijen met inhoud van fieldname groter dan value of gelijk aan value.
like Bevat. Zoek rijen waar value is vervat in de inhoud van fieldname (gedeeltelijk of volledig).
in Staat in lijst. Zoek rijen met inhoud van fieldname is precies hetzelfde als een van value. In dit geval value zou een array moeten zijn.
is Is niets. Zoek rijen met inhoud van fieldname is NULL.
isnot Is niet nul. Zoek rijen met inhoud van fieldname is niet NULL.

Voorbeeld:

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

... vindt rijen waar age is gelijk aan of groter dan 27 en lastname bevat man (bijvoorbeeld Hofmann of Superman of Mandy)

krijgen

Het actietype get kan worden gebruikt om een ​​of meer vermeldingen van een specifiek model uit de database op te vragen wanneer de ID's van de vermeldingen al bekend zijn. Het beoogde gebruik van dit actietype is om de gegevens in een formulier weer te geven voor bewerking. Daarom geeft het antwoord ook gedetailleerde informatie over elk veld.

Verwacht invoervoorbeeld:

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

Stuur een lege array van ids om alleen de velddefinitie te krijgen. Dit kan u helpen om een ​​nieuw item te creëren op basis van de velddefinitie.

Uitvoervoorbeeld van reactie:

{
  "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
  }
}

Het bovenstaande voorbeeld zou kunnen resulteren in een formulier dat er als volgt uitziet:

creëren

Om nieuwe entires aan te maken, kunt u het actietype gebruiken create.

Verwacht invoervoorbeeld:

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

De uitvoer van een geslaagde update komt overeen met het voorbeeld dat is gegeven voor de get actie type. Uitvoervoorbeeld:

{
  "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
  }
}

-update

Om een ​​of meer bestaande entires te wijzigen, kunt u het actietype gebruiken update.

Verwacht invoervoorbeeld:

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

De uitvoer van een geslaagde update komt overeen met het voorbeeld dat is gegeven voor de get actie type. Uitvoervoorbeeld:

{
  "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
  }
}

In het geval van een updatefout, reageert het systeem met een foutmelding als deze:

{
  "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"
  }
}

verwijderen

Het actietype delete kan worden gebruikt om een ​​of meer items van een specifiek model uit de database te verwijderen wanneer de ID's van de items al bekend zijn.

Verwacht invoervoorbeeld:

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

Uitvoervoorbeeld van reactie:

{
  "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
  }
}
Terug naar boven