Acest site folosește cookie-uri. Prin navigarea pe acest site, iți exprimi acordul asupra folosirii cookie-urilor. Vezi și politica noastră de confidențialitate

N E X U S
Nexus ERP

Nexus ERP progres

loading

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.

 

Exemplu REST API din PHP

 

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.

Exemplu REST API din PHP

 

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).

 

Exemplu REST API din PHP

 

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

 

Unde CHEIE-API-BASE64 reprezintă codificarea în base64 a cheii API, urmată de caracterul “:”.

 

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"]);
}

  •     Citire proces verbal diferente inventar linii
  • Import comanda client - protocolul Edinet (https://infinite-b2b.ro/)