Przejdź do głównej treści

Local API

Ready_™ Developer TeamMniej niż 1 minuta

Local API

System Ready_™ udostępnia API (Application Programming Interface), dzięki któremu jesteśmy w stanie przeprowadzać podstawowe czynności bez konieczności logowania do systemu.

Wywołanie api

Drugim sposobem wywołania jest tzw. wywołanie lokalne. Skrypt można wywołać w przeglądarce z poziomu systemu Ready_™, np.: poprzez użycie Custom Widgetów.  Skrypt, który będzie się odwoływał do API, nie wymaga podania danych autoryzacyjnych, ponieważ autoryzacja nastąpi na podstawie sesji zalogowanego użytkownika lub ustawiając odpowiednio SysContext, co możemy wykorzystać w lokalnych skryptach wywoływanych cyklicznie przez cron.

Przykładowe wywołanie

require_once('./classes/eDokumentyApi/EDokApi.inc');
$api = new EDokApi();
try {
    $res = $api->createContact([]);
} catch (Exception $e) {
    var_dump($e);
}

Lista dostępnych metod

Listę dostępnych metod została udostępniona tutaj

Obsługa błędów API

Zgodnie z przykładem dla PHP (pomijając całą otoczkę oraz brak parametrów) metoda do tworzenia dokumentu w przypadku błędy API lub wykonania kodu (parsowania klas etc) może zwrócić błędy z kodem do 100 lub powyżej.

Jak należy rozumieć ten kod:

  • poniżej 100 - błędy techniczne wykonania kodu, logiki kodu, parsowania (błędy w kodzie) etc + równe lub powyżej 100 - błędy walidacji API, czyli wszystkie te błędy, które mogą pojawić się podczas sprawdzania parametrów lub braku logicznego powiązania pomiędzy nimi np. data rozpoczęcia jest większa niż zakończenia etc

Błędy z kodem poniżej 100 powinny (jest zalecane) przerywać działanie aplikacji zewnętrznej, gdyż wyraźnie wskazują na niepowodzenie wywołania usługi (techniczny błąd). Podobne zalecenie jest dla błędów >= 100.

Obecnie mechanizm API zwraca błędy z kodami 100 lub 110, które wskazują na błąd parametrów, a same kody błędów nie mają pomiędzy sobą większej różnicy, także dla obsługi błędów parametrów należy uwzględnić te dwa kody 100 oraz 110.

$doc_id = NULL;

try {
    $doc_id = $client->createDocument([]);
    var_dump($doc_id);
} catch(SoapFault $fault) {

    var_dump($fault);
 
    if ($fault->faultcode < 100) { 
        trigger_error("SOAP Fault: (faultcode: {$fault->faultcode}, faultstring: {$fault->faultstring})", E_USER_ERROR);
    }
}