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