API dokumentáció

REST API dokumentáció a Systream rendszerhez.

Figyelem: Jelen dokumentáció folyamatos feltöltés alatt áll.

Autentikáció

Az API használatához fel kell venni egy API -s felhasználót a rendszerbe. A felhasználó rögzítése után a rendszer generál egy Kulcsot (KEY) és egy jelszót (SECRET). Ezek szükségesek ahhoz, hogy API hívást tudjunk intézni a szolgáltatás felé.

A szolgáltatás a https://systream.hu/salvus/api/ url-en érhető el.
Basic HTTP auth -al kell azonosítanunk magunkat, a megadott kulcs (KEY) és jelszó (SECRET) párossal.

Használat

Az API-t GET, POST, PUT HTTP metódussal lehet megívni.

A GET-tel adatot kérdezünk le, POST és a PUT-al adatokat tárolunk, mentünk el.

A rendszer mindig JSON kódolt adatokat küld. A visszatérési adat szerkezetében mindig van egy success elem, ami jelzi, hogy a művelet sikeres volt.
Siker esetén a kért információ a meghívott url GET metódussal: https://systream.hu/salvus/api/schema/customers

Válasz:

{
    "id":"43",
    "account_id":"1",
    "name":"customers",
    "label":"\u00dcgyfelek",
    "description":"\u00dcgyf\u00e9ladatok (n\u00e9v, c\u00edm, e-mail, telefon, stb...)",
    "sequence_id":"2",
    "allow_to_delete":"0",
    "named_property":"342",
    "default_search_filter":"",
    "user_cant_edit":"1"
}

Sikertelen kérés esetén pedig egy success paraméterben false érték és a message elem szolgál információval a hibát illetően.

{
    "success":false,
    "message":"An system error occurred. We will fix as soon as possible. Please come back later!"
}

PHP -s segéd kliens osztály

Elkészítettünk egy PHP -s kliens osztályt, amivel könnyebben, gyorsabban internálható az API. Megtalálható a github -on: https://github.com/systream/REST-API-client

Felhasználási példa:

require 'RestClient.php';
require 'SalvusClient.php';

$client = new SalvusClient('API key','API secret');

try { 

  // set working schema
  $client->setSchema('schemaName'); 

  // get current schema data
  $schemaData = $client->getSchema();

  // get schema properties
  $schemaProperties = $client->getProperties();

  // get the detailed data one of the properties 
  $propertyData = $client->getPropertyData($schemaProperties[0]['id']);

  // get data
  $data = $client->getData(10); 

} catch (Exception $e) { 
  echo 'Error: '.$e->getMessage(); 
} 

Parancsok

Séma tulajdonságainak lekérdezése

URL: https://systream.hu/salvus/api/schema/[schema_name]
Metódus: GET
Válasz:

{
    "id":"43",
    "account_id":"1",
    "name":"customers",
    "label":"\u00dcgyfelek",
    "description":"\u00dcgyf\u00e9ladatok (n\u00e9v, c\u00edm, e-mail, telefon, stb...)",
    "sequence_id":"2",
    "allow_to_delete":"0",
    "named_property":"342",
    "default_search_filter":"",
    "user_cant_edit":"1"
}
Sémához tartozó adat lekérdezése

URL: https://systream.hu/salvus/api/schema/[schema_name]/[data_id]
Metódus: GET
Válasz:

{
    "342":"Systream Kft",
    "343":"info@systream.hu",
    "344":"",
    "346":"Budapest",
    "347":"N\u00e1dor u. 16",
    "348":"00-00-000000",
    "349":"",
    "340":"2013-12-28 14:45:10",
    "341":"22",
    "345":"1046"
}

Formátum: „Tulajdonság azonosító”: „adat”

Séma tulajdonságok adatainak lekérdezése

URL: https://systream.hu/salvus/api/properties/[schema_name]/
Metódus: GET
Válasz:

[
   {
       "id":"340",
       "schema":"43",
       "label":"Created",
       "description":"Time when data created",
       "element":"9",
       "not_null":"0",
       "validation":"",
       "default_value":"now()",
       "not_visible":"1",
       "order":"100",
       "size":"0",
       "autocomplete":"0",
       "global_search":"0",
       "not_editable":"1",
       "calendar":"0",
       "show_in_search_table":"1",
       "user_cant_edit":"1",
       "related_schema":"0",
       "is_public":"0",
       "show_in_calendar":"0",
       "is_unique":"0",
       "additional":""
    },
    {
       "id":"341",
       "schema":"43",
       "label":"Created by",
       "description":"Userid of the user who created",
       "element":"10",
       "not_null":"0",
       "validation":"",
       "default_value":"currentuserid()",
       "not_visible":"1",
       "order":"100",
       "size":"0",
       "autocomplete":"0",
       "global_search":"0",
       "not_editable":"1",
       "calendar":"0",
       "show_in_search_table":"1",
       "user_cant_edit":"1",
       "related_schema":"0",
       "is_public":"0",
       "show_in_calendar":"0",
       "is_unique":"0",
       "additional":""
    },
    ...
]