API ir JavaScript pavyzdžiai

API ir JavaScript pavyzdžiai

OpenAPI adresas pateikiamas čia: RIVILE ERP_API(Swagger UI)

Kodo pavyzdys

Užduotis: Suformuoti pardavimų sąskaitos sukūrimą ir registravimą, naudojant POST užklausą į Rivile REST API.

Su viena užklausa galima sukurti dokumentą su eilutėmis, kai eilučių kiekis yra <= 100. Jei norite sukurti dokumentą su > 100 eilučių, rekomenduojame pirma sukurti dokumentą ir vėliau atskiromis užklausomis kurti dokumento eilutes.

Naudojant suformuotą pavyzdį naudoti savo API raktą ( <Jūsų_API_Raktas> ).

// Rivile Public REST API URL
const url = "https://erp.rivile.cloud/public-api/v1/sale-invoices";

// API rakto tokenas. Jį sukurti ir pasiimti galite iš Rivile ERP sistemos.
const api_key = "<Jūsų_API_Raktas>";

// Sukuriame pardavimų sąskaitos duomenų objektą JSON formatu
const invoiceData = {
  "clientId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "clientName": "Rivilė, UAB",
  "documentNo": "ERP-002365",
  "isTaxIncluded": false,
  "currencyCode": "EUR",
  "notes": "Sąskaita iš elektroninės parduotuvės",
  "lines": [
    {
      "itemCode": "SM-S928BZYHEUB",
      "itemName": "Samsung Galaxy S21 Ultra",
      "uomAltCode": "VNT",
      "qtyAlt": 1,
      "price": 1000.00,
      "departmentCode": "SAND1"
    }
  ]
};

// Sukuriame HTTP antraštes su API raktu
const headers = {
  "X-SessionToken": api_key,
  "Content-Type": "application/json"
};

// Siunčiame POST užklausą naudojant fetch
fetch(url, {
  method: "POST",
  headers: headers,
  body: invoiceData
})
  .then(response => response.json())  // Konvertuojame atsakymą į JSON
  .then(data => {
    console.log("Atsakymas:", data);  // Atvaizduojame gautą atsakymą
  })
  .catch(error => {
    console.error("Klaida:", error);  // Atvaizduojame klaidą, jei yra
  });

GET sąrašiniuose metoduose duomenų filtravimas

Galimas duomenų filtravimas, kuris leidžia sujungti kelis filtrus juos jungiant loginę funkciją AND .

Filtravimui galimi naudoti operatoriai:

  • CONTAINS: Tikrina, ar laukas turi nurodytą tekstą.
  • NOT_CONTAINS: Tikrina, ar laukas neturi nurodyto teksto.
  • EQUAL: Tikrina, ar laukas yra lygus nurodytam tekstui, skaičiui arba loginei reikšmei.
  • NOT_EQUAL: Tikrina, ar laukas nėra lygus nurodytam tekstui arba skaičiui.
  • GREATER_THAN: Tikrina, ar laukas yra didesnis nei nurodytas skaičius.
  • STARTS_WITH: Tikrina, ar laukas prasideda nurodytu tekstu.
  • ENDS_WITH: Tikrina, ar laukas baigiasi nurodytu tekstu.

Pavyzdys:

Užduotis: Vykdyti filtravimą klientų, kurių pavadinime yra fragmentas "Demo" ir jie yra aktyvūs.

API filtrų sąlyga:

  {    "operation": "CONTAINS",    "name": "name",    "value": "Demo"  },  {    "operation": "EQUAL",    "name": "active",    "value": true  } 

Vykdant užklausą filtro reikšmę reikia užkoduoti (Encode).

API filtro rezultatas:

GET {{baseUrl}}/v1/clients?size=30&page=0&filter=%7B%22operation%22%3A%22CONTAINS%22%2C%22name%22%3A%22name%22%2C%22value%22%3A%22Demo%22%7D%2C%7B%22operation%22%3A%22EQUAL%22%2C%22name%22%3A%22active%22%2C%22value%22%3Atrue%7D

Kodas, skirtas sukurti filtrą ir suformuoti GET užklausą:

// Filtras
const filters = [
  { operation: "CONTAINS", name: "name", value: "Demo" },
  { operation: "EQUAL", name: "active", value: true }
];

// JSON filtro sąlygų konvertavimas į eilutę
const jsonFilter = JSON.stringify(filters);

// Filtro eilutės konvertavimas į URL formatą
const urlEncodedFilter = encodeURIComponent(jsonFilter);

// Filtro apjungimas su puslapiavimo parametrais
const queryParams = `?size=30&page=0&filter=${urlEncodedFilter}`;

// Pilnos GET užklausos sukonstravimas
const baseUrl = "https://erp.rivile.cloud/public-api/v1/clients";
const fullUrl = baseUrl + queryParams;
console.log(fullUrl);

// Jei norite išsiųsti užklausą
fetch(fullUrl)
  .then(response => response.json())
  .then(data => console.log(data))
  .catch(error => console.error('Error:', error));

Kriterijų keitimas (pvz. puslapių numerai, įrašų skaičius puslapyje ir pan.) galimas pagal individualų poreikį.

Užklausoje įrašų skaičius negali viršyti 100.

API