API für Datenquellen in edoc automate
Sie können eigene Datenquellen, anders als Aktionen und Komponenten, nur per Add-On in Apps einfügen und verwenden. Ihnen stehen je nach Kontext verschiedene Basisklassen zur Verfügung:
DataSource für alle Datenquellen
Database für relationale Datenbanksysteme
RestAPI für Abfragen von REST-API-Funktionen
Namespace
edoc\appserver\addons\<addon-name>\datasources;
Basisklasse für Datenquellen
Alle Datenquellen in edoc automate müssen von der Klasse DataSource abgeleitet werden. Der Name der Datenquelle muss mit einem Großbuchstaben beginnen gefolgt von Kleinbuchstaben, z.B. Datevconnect.
<?php
namespace edoc\appserver\datasources;
abstract class DataSource
{
/**
* Returns an array with text as readable status for the data source.
*
* @return string[]
*/
abstract public function details();
/**
* This method is executed when an instance of the data source is generated.
* Properties can be defined and the connection status can be validated.
*
*/
abstract protected function init();
/**
* Method to define a property of the data source.
*
* @param $name The property name.
* @param $type The property type: text, password, number, boolean.
* @param $defaultValue Default value for the property.
*/
protected function addProperty($name, $type, $defaultValue = null)
/*
* Method to query all specified properties of the data source.
*
*/
public function properties();
/*
* Methode to set parameters, e.g. for placeholders in the action "database\Query".
*
* @param $params Associative array with name and value.
*/
public function setParams(array $params);
/*
* Method to set the status of the data source.
*
* @param $ready "true", if the data source is ready, otherwise "false".
*
*/
protected function setReady($ready = true);
/*
* Method to set an error message if, for example, there the conntection to the data source cannot be established.
*
* @param $message Error message text.
*/
protected function setErrorMessage($message)
}
Basisklasse für relationale Datenbanksysteme
Datenquellen, die mit rationalen Datenbanksystemen verwendet werden, sollten von der Klasse Database erben. Nur durch die Vererbung können Sie diese Datenquelle dann auch direkt mit den Aktionen der Gruppe database verwenden.
Möglicherweise müssen Sie für die Datenbankverbindung den entsprechenden Treiber für PHP laden.
<?php
namespace edoc\appserver\datasources;
abstract class Database extends DataSource
{
abstract public function querySingle($SQL);
abstract public function query($SQL);
abstract public function lastInsertId();
abstract public function escape($string, bool &$addedQuotes);
protected function parseQuery($Sql);
}
Basisklasse zum Abfragen von REST-API-Funktionen
Die RestAPI-Klasse ist eine spezielle Klasse zum Abfragen von REST-APIs.
<?php
namespace edoc\appserver\datasources;
abstract class RestAPI extends DataSource
{
protected function initAPI($host);
public function addRequesOption($name, $value);
protected function requestGet($url, $headerFields = [], &$responseHeader = null);
protected function requestPost($url, $postData, $headerFields = [], &$responseHeader = null);
protected function requestPatch($url, $postData, $headerFields = [], &$responseHeader = null);
protected function requestDelete($url, $postData, $headerFields = [], &$responseHeader = null);
protected function requestPut($url, $postData, $headerFields = [], &$responseHeader = null);
protected function processResponse($url, $status, $body, $header);
}