Integrácia cez REST API (ANDROID)
Zariadenie podporuje vzdialené vykonávanie skriptov pomocou jednoduchého rozhrania. Pre integrátorov je poskytnutá jednoduchá tirieda v Jave pre vykonávanie skriptov.
Použitie
Typ zariadenia | | poznámka |
|---|
eKasa | áno | |
eKasa + POS | áno | |
POS | áno | |
Triedu LdmRestAPI v Java je možné stiahnuť na:
Odkaz
V zariadení musí byť nainštalovaná aplikácia EpoPay REST API Server
Vlastnosti
Uchováva sa posledných 128 vykonaných skriptov
Skripty sa uchovávajú v RAM, tj. nie perzistentne - po reštarte zariadenia nie je možné získať vykonané skripty pred reštartom.
Skripty sú vykonávané asynchrónne, tj. skript sa zaradí na spracovanie a pomocou endpointu API je možné sa dotazovať na stav spracovania.
Konštruktor
public LdmRestAPI(String ip, int port)
public LdmRestAPI(String ip, int port, String userName, String password)
Synchrónny prístup
Blokujúce vykonanie skriptu.
public String processFmScript(String script) throws RestException
Príklad synchrónneho volania
String script = "getVariable:B51\r\n";
LdmRestAPI ldmRestAPI = new LdmRestAPI("192.168.50.123", 48080);
String responseScript;
try
{
responseScript = ldmRestAPI.processFmScript(script);
}
catch (RestException e)
{
throw new RuntimeException(e);
}
if (responseScript != null && !responseScript.isEmpty())
{
System.out.println(responseScript);
}
Asynchrónny prístup
API umožňuje asynchrónne vykonanie skriptu. Najskôr je potrebné zaradiť skript na spracovanie pomocou metódy pegasScript. Následne je možné sa dotazovať na stav spracovania pomocou metódy getTaskStatus.
public long pegasScript(String script) throws RestException
public TasksResponse getTaskStatus(long id) throws RestException
Príklad asynchrónneho volania
String script = "getVariable:B51\r\n";
LdmRestAPI ldmRestAPI = new LdmRestAPI("192.168.50.123", 48080);
// Zaradenie skriptu na spracovanie
long taskId;
taskId = ldmRestAPI.pegasScript(script);
// Získanie stavu spracovania
TasksResponse tasksResponse;
do
{
tasksResponse = ldmRestAPI.getTaskStatus(taskId);
}
while (tasksResponse.getStatus() == TasksResponse.Status.RUNNING);
// Vyhodnotenie odpovede
switch (tasksResponse.getStatus())
{
case FINISHED:
return tasksResponse.getReport();
case TASK_DOES_NOT_EXIST:
throw new TaskDoesNotExistsException("Internal error. Task does not exist");
case FAILURE:
throw new TaskProcessingException("Internal error. Task processing error");
default:
throw new InternalErrorException("Internal error. Throwing exception because taskResponse status is: " + tasksResponse.getStatus().name());
}
Popis koncových bodov
V prípade potreby integrácie do iného jazyku je možné priame využitie endpointov REST Serveru
Authenticate
Vygenerovanie autentifikačného tokenu
GET http://192.168.50.123:48080/api/authenticate
GET /api/authenticate HTTP/1.1
Host: 192.168.50.123:48080
Content-Type: application/json
Content-Length: 52
{
"userName":"admin",
"password":"1111"
}
Zaradenie Pegas skriptu na spracovanie
http://192.168.50.123:48080/api/pegas-script
POST /api/pegas-script HTTP/1.1
Host: 192.168.50.123:48080
Content-Type: application/json
Authorization: Bearer 34cdbf847f579409a876d250454a361a
Content-Length: 45
{
"pegasScript":"getVariable:B51\r\n"
}
Získanie stavu spracovania
http://192.168.50.123:48080/api/tasks/0
GET /api/tasks/1 HTTP/1.1
Host: 192.168.50.123:48080
Authorization: Bearer 34cdbf847f579409a876d250454a361a
Last modified: 23 februára 2026