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