Información
Mi contenido

API general: tipos de acción

auth

Para autenticar al usuario, utilice el tipo de acción auth. Con su solicitud, envíe el nombre de usuario y la contraseña y recibirá un token de autenticación como respuesta. El token se puede utilizar para procesar solicitudes posteriores.

Ejemplo de entrada:

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

Ejemplo de salida:

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

Guarde el valor que se encuentra en kmd y enviarlo en todas las llamadas posteriores a la API como valor de entrada kmd.

Tenga en cuenta: En caso de autenticación de dos factores, la llamada a auth devolverá un código de error dependiendo del método de autenticación si 2fa no fue enviado. Si ese es el caso, deberá mostrar una página de Autenticación de dos factores al usuario que coincida con el código de error (por ejemplo, para ingresar el código de correo electrónico u OTP). Utilice el token (kmd) que recibió y usa la acción verifyauth para (re) enviar el código 2fa.

Verificación

La acción verifyauth se puede utilizar para verificar si un token (kmd) sigue siendo válido y / o para enviar un código 2fa para la autenticación de dos factores.

Ejemplo de entrada:

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

Ejemplo de salida:

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

Guarde el valor que se encuentra en kmd y enviarlo en todas las llamadas posteriores a la API como valor de entrada kmd.

derechos

Tipo de acción rights se puede utilizar para obtener una descripción general de los modelos y las acciones a las que el usuario tiene derecho de acceso.

Ejemplo de entrada:

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

Ejemplo de salida:

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

lista

El tipo de acción list se puede utilizar para solicitar una lista de entradas de un modelo específico de la base de datos. Este tipo de acción está diseñado para ofrecer una descripción general de los elementos a un usuario (en lugar de mostrar detalles específicos).

Ejemplo de entrada esperado:

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

Ejemplo de salida de respuesta:

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

Los datos de salida constan de un data matriz y una matriz de cabeza correspondiente. La matriz de datos contiene las filas que se mostrarán al usuario. La matriz de encabezados contendrá la información específica del título (por ejemplo, clasificación, texto del título, etc.) para cada columna de la tabla.

Los datos de ejemplo anteriores resultarían en la siguiente tabla que se mostraría:

Filtros

La filters La propiedad JSON de la solicitud se puede utilizar para buscar elementos específicos o reducir la lista de salida. los filters La propiedad consta de una matriz de elementos de filtro. Cada artículo es un objeto de la siguiente estructura:
{
"fieldname": "...", // Field the filter should apply to
"comparison": "...", // (optional) Comparison type, see description
"value" : "..." // Value to compare the field to
}

Para buscar en todos los campos, el nombre del campo query puede ser usado.

Posibles comparison los valores son:

Tipo de comparación Descripción del producto
eql Igual. Encuentra filas donde el contenido de fieldname es exactamente lo mismo que value. (Este tipo es predeterminado si comparison no se utiliza en el objeto.)
lt Más bajo que. Encuentra filas donde el contenido de fieldname es más pequeño que value.
gt Mas grande que. Encuentra filas donde el contenido de fieldname es mayor que value.
lte Menor que / Igual. Encuentra filas donde el contenido de fieldname es más pequeño que value o igual a value.
gte Mayor que / Igual. Encuentra filas donde el contenido de fieldname es mayor que value o igual a value.
like Contiene. Encuentra filas donde value está incluido en el contenido de fieldname (en parte o en su totalidad).
in Está en la lista. Encuentra filas donde el contenido de fieldname es exactamente igual que uno de value. En este caso value debería ser una matriz.
is Es nulo. Encuentra filas donde el contenido de fieldname is NULL.
isnot No es nulo. Encuentra filas donde el contenido de fieldname no es NULL.

Ejemplo:

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

... encontrará filas donde age es igual o mayor que 27 y lastname contiene al hombre (por ejemplo, Hofmann o Superman o Mandy)

obtener

El tipo de acción get se puede utilizar para solicitar una o más entradas de un modelo específico de la base de datos cuando ya se conocen los ID de las entradas. El uso previsto de este tipo de acción es mostrar los datos en un formulario para su edición. Por lo tanto, la respuesta también proporcionará información detallada sobre cada campo.

Ejemplo de entrada esperado:

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

Envíe una matriz vacía de ids para obtener solo la definición del campo. Esto puede ayudarlo a crear una nueva entrada basada en la definición del campo.

Ejemplo de salida de respuesta:

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

El ejemplo anterior podría resultar en un formulario con este aspecto:

Para crear

Para crear nuevas entradas, puede utilizar el tipo de acción create.

Ejemplo de entrada esperado:

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

El resultado de una actualización exitosa corresponde al ejemplo dado para el get tipo de acción. Ejemplo de salida:

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

actualización

Para cambiar una o más entradas existentes, puede usar el tipo de acción update.

Ejemplo de entrada esperado:

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

El resultado de una actualización exitosa corresponde al ejemplo dado para el get tipo de acción. Ejemplo de salida:

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

En caso de un error de actualización, el sistema responderá con un mensaje de error como este:

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

borrar

El tipo de acción delete se puede utilizar para eliminar una o más entradas de un modelo específico de la base de datos cuando ya se conocen los ID de las entradas.

Ejemplo de entrada esperado:

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

Ejemplo de salida de respuesta:

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