
Exemplu REST API din PHP
Creare utilizator si alocare drepturi limitate la module
Pentru a folosi serviciul Nexus ERP Web API avem nevoie de o cheie API alocata unui utilizator , care se creeaza in Nexus ERP in cadrul modulului de Utilizatori.
In functie de specificul utilizarii apelurilor API (citire, scriere) trebuie sa alocam drepturi utilizatorului respectiv pentru modulele respective.
In cazul nostru creem un utilizator nexusapi in care specificam ca are acces de citire numai la modulul parteneri.
Creare cheie API pentru utilizator Nexus ERP
Pentru a folosi serviciu Nexus ERP Web API avem nevoie de o cheie API, care se asociaza utilizatorului creat mai sus. Pentru a crea cheai API deschidem modulul de Aplicatii online si creem o aplicatie externa pentru utilizatorul nexusapi.
Dupa adaugare, aplicatia externa este Inactiva. Pentru activarea ei, deschidem fereastra de editare si apasam Actualizare parola, unde trebuie sa completam parola utilizatorului asociat aplicatiei (in cazul nostru, parola la utilizatorul nexusapi).
Instalare serviciu Nexus API
Serviciul Nexus API este o componenta a pachetului NexusServicii. Dupa instalarea serviciului trebuie configurate in fisierul de setari NexusAPIService.ini din cadrul directorului NexusAPIService (unde a fost instalat serviciul) adresa serverului SQL al programului Nexus ERP precum porturile pentru ambele tipuri de conexiuni SSL sau NON SSL.
Daca instalarea a decurs bine, se poate verifica in ferastra de Servicii din Windows ca ambele servicii sunt pornite: NexusAgentService si NexusAPIService.
Apelare serviciu API din exterior
Pentru utilizarea serviciului API Nexus ERP din exteriro avem nevoie de 3 elemente:
- IP-ul de exterior al serverului Nexus ERP
- Portul serviciului REST API (exemplu creat mai sus)
- cheia API pentru conectarea la serviciul Web API Nexus ERP (exemplu creat mai sus)
Un apel API este reprezentat prin trimiterea unei solicitări la adresa URL a serviciului WEB API. Fiecare cerere constă dintr-un mesaj HTTP POST la o adresă URL, cum ar fi:
http://{ip}:{port}/api/v1/actiune/resursa
Exemplu:
http://192.168.0.1:5100/v1/read/parteneri
Apelul api se face cu headere http conținând următoarele elemente:
- Content-Type: text/plain
- Authorization: Basic CHEIE-API-BASE64
Mai multe detalii despre Web API Nexus ERP precum si lista completa de operatiuni de scriere, citire: www.docs.nexuserp.ro/articol/web-api-nexus-erp/360
Exemplu de citire prin API din PHP
Exemplu de citire informatii partener prin API din Nexus ERP:
define("API_NEXUSERP_IP", "192.168.0.1");
define("API_NEXUSERP_PORT", "55090");
define("API_NEXUSERP_KEY", "AAAA527c66a24823b972dbf11fa1332a");
$post_array = array("cod_fiscal" => "9671891");
$data_json = json_encode($post_array);
$SERVICIU_TIP_CITIRE = "parteneri";
$curl = curl_init();
curl_setopt_array(
$curl,
array(
CURLOPT_PORT => API_NEXUSERP_PORT,
CURLOPT_URL => "http://" . API_NEXUSERP_IP . ":" . API_NEXUSERP_PORT . "/api/v1/read/" . $SERVICIU_TIP_CITIRE,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 60,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => $data_json,
CURLOPT_HTTPHEADER => array(
"Authorization: Basic " . base64_encode(API_NEXUSERP_KEY . ":"),
"Cache-Control: no-cache",
"Content-Type: application/json"
)
)
);
$response = curl_exec($curl);
$err = curl_error($curl);
$info = curl_getinfo($curl);
$httpCode = curl_getinfo($curl , CURLINFO_HTTP_CODE);
curl_close($curl);
if ($httpCode == 200) {
$data = json_decode($response, true);
//print_r($data["result"]);
}