API - za programere

Minimax API je RESTful web servis koji vam omogućava da se povežete sa spoljnim aplikacijama za različite potrebe korišćenja. Omogućava vam da koristite određene funkcije koje su ugrađene u minimax. Tehnička dokumentacija za Minimax API je dostupna na sledećem LINKU.

Koristeći API slažete se sa uslovima korišćenja Minimax API uslovi korišćenja


Eksterni programeri


Ako sami razvijate povezivanje preko API, potrebno je obratiti se Minimax podršci  (preko zahteva za pomoć ili na podrska@seyfor.rs) kako biste dobili podatke klijenta/kupca (Client podatke) za povezivanje.


Podaci za prijavu

 Prijavite se u Minimax i u delu moj profil kliknete na uredi osnovne podatke da bi vam se otvorio Minimax nalog. U donjem delu kliknete na dugme Nova aplikacija. Unesete u prozoru naziv aplikacije, korisničko ime i lozinku sa kojom bi se kao korisnik prijavljivali na API (User podaci). Detaljnije na Linku.


Uređivanje podešavanja u programu

Korisnik, koji je na svom nalogu dozvolio pristup spoljnim aplikacijama,  treba da  ima prava za API na nekoj od organizacija sa kojom se povezuje. Detaljnije na Linku.


Adrese

API:https://moj.minimax.rs/RS/API/

AUTH:https://moj.minimax.rs/RS/AUT/oauth20/token


Autentifikacija korisnika

  1. Za autentifikaciju koristi se protokol  OAuth2 (članak OAuth 2 Simplified)  (obvezno koristiti grant_type=password).
  2. Najpre se prijavite u AUT sa podacima klijenta (Client podaci) i sa korisničkim imenom i šifrom koje ste uneli  na Minimax nalogu (User podaci), da dobijete token. Dobijeni token koristite pri svakom pozivu API metode.
  3. Primer u PHPju
<?php 
$params = array(
    'client_id'=> 'ClientId',
    'client_secret'=> 'ClientPassword',
    'grant_type'=> 'password',
    'username'=> 'UserName',
    'password'=> 'UserPassword',
    'scope' => 'minimax.rs');

$request = array(
    'http' => array(
        'method'=> 'POST',
        'header'=> array(
            'Content-type: application/x-www-form-urlencoded',
            ),
        'content'=> http_build_query($params),
        'timeout'=> 10
        )
    );

if (!$response = file_get_contents('https://moj.minimax.rs/RS/aut/oauth20/token', false, stream_context_create($request))) {        
    die('auth error');
}

$token = json_decode($response);
$request = array(
    'http' => array(
        'method'=> 'GET',
        'header'=> 'Authorization: Bearer ' . $token->access_token,
        'timeout'=> 10
        )
    );
if (!$response = file_get_contents('https://moj.minimax.rs/RS/api/api/currentuser/orgs', false, stream_context_create($request))) {
    die('orgs error');
}
 $orgs = json_decode($response, true); print_r($orgs);
?>


Napomena! Prilikom nekoliko uzastopnih poziva za autentifikaciju sa netačnom lozinkom, APLIKACIJA se zaključa i moramo ponovo kreirati APLIKACIJU kroz Moj profil.


Primer programskog rešenja

Primer developera:


Upotreba podataka RowVersion

Prilikom ažuriranja zapisa i pri nekim akcijama, javljaju se podaci RowVersion, koji služe ažuriranju najnovije verzije zapisa. Podaci se dobijaju čitanjem objekta preko pripadajuće GET metode za čitanje pojedinog zapisa.

U primeru, kada se  zapis u međuvremenu promenio, interfejs vraća povezanu grešku:

Concurrency error - record changed by another action (RowVersion)


Testiranje preko interfejsa

API metode možete takođe testirati preko web servisa na stranici tehnička dokumentacija API.

Kao prvu metodu za testiranje možete pozvati metodu GET MyOrganisations koja vraća sve organizacije do kojih imate pristup.

  1. Na pregledu metode u polju Request kliknite na gumb Test API.
  2. Kliknite na Add auth headers da biste se autentificirali.
  3. Kliknite na gumb Send.
  4. Prikazat će se pop-up prozor s rezultatima upita.


Informacije o kreiranom objektu - Headers.Location

Sve metode upisa (npr. AddCustomer) vraćaju informacije o kreiranom objektu u odgovoru. Ove informacije nose podaci u odgovoru:

  •  Headers.Location - dobijemo url kreiranog objekta. Url sadrži takođe i ID kreiranog objekta.

Poziv url kreiranog objekta (GET), nam vrati sve podatke objekta.

U ovom tekstu