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>
).
Imports System.Net.Http
Imports System.Text
Imports Newtonsoft.Json ' Pridėkite šią biblioteką JSON apdorojimui
Module RivileApiRequest
Sub Main()
' Rivile Public REST API URL
Dim url As String = "https://erp.rivile.cloud/public-api/v1/sale-invoices"
' API rakto tokenas. Jį sukurti ir pasiimti galite iš Rivile ERP sistemos.
Dim apiKey As String = "<Jūsų_API_Raktas>"
' Sukuriame pardavimų sąskaitos duomenų objektą JSON formatu
Dim data As New Dictionary(Of String, Object) From {
{"clientId", "3fa85f64-5717-4562-b3fc-2c963f66afa6"},
{"clientName", "Rivilė, UAB"},
{"documentNo", "ERP-002365"},
{"isTaxIncluded", False},
{"currencyCode", "EUR"},
{"notes", "Sąskaita iš elektroninės parduotuvės"}
}
' Sukuriame sąskaitos eilutes
Dim lineItem As New Dictionary(Of String, Object) From {
{"itemCode", "SM-S928BZYHEUB"},
{"itemName", "Samsung Galaxy S21 Ultra"},
{"uomAltCode", "VNT"},
{"qtyAlt", 1},
{"price", 1000.0},
{"departmentCode", "SAND1"}
}
' Pridedame eilutę į pardavimų sąskaitą
Dim lines As New List(Of Dictionary(Of String, Object)) From {
lineItem
}
data.Add("lines", lines)
' Konvertuojame duomenis į JSON formatą
Dim jsonData As String = JsonConvert.SerializeObject(data)
' Sukuriame HttpClient užklausą
Dim client As New HttpClient()
' Nustatome antraštes
client.DefaultRequestHeaders.Add("X-SessionToken", apiKey)
client.DefaultRequestHeaders.Add("Content-Type", "application/json")
' Sukuriame POST užklausą
Dim content As New StringContent(jsonData, Encoding.UTF8, "application/json")
Dim response As HttpResponseMessage = client.PostAsync(url, content).Result
' Patikriname atsakymo kodą ir atvaizduojame atsakymą
If response.IsSuccessStatusCode Then
Dim responseBody As String = response.Content.ReadAsStringAsync().Result
Console.WriteLine("Atsakymas: " & responseBody)
Else
Console.WriteLine("Klaida: " & response.StatusCode.ToString() & " - " & response.Content.ReadAsStringAsync().Result)
End If
End Sub
End Module
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ą:
Imports System.Web
Imports System.Net
Imports System.IO
Module Program
Sub Main()
' JSON filtro sąlygų konvertavimas į eilutę
Dim filters As String = "[{""operation"":""CONTAINS"",""name"":""name"",""value"":""Demo""},{""operation"":""EQUAL"",""name"":""active"",""value"":true}]"
' Filtro eilutės konvertavimas į URL formatą
Dim urlEncodedFilter As String = HttpUtility.UrlEncode(filters)
' Filtro apjungimas su puslapiavimo parametrais
Dim queryParams As String = "?size=30&page=0&filter=" & urlEncodedFilter
' Pilnos GET užklausos sukonstravimas
Dim baseUrl As String = "https://erp.rivile.cloud/public-api/v1/clients"
Dim fullUrl As String = baseUrl & queryParams
Console.WriteLine(fullUrl)
' Jei norite išsiųsti užklausą
Dim request As HttpWebRequest = CType(WebRequest.Create(fullUrl), HttpWebRequest)
request.Method = "GET"
Dim response As HttpWebResponse = CType(request.GetResponse(), HttpWebResponse)
Dim dataStream As Stream = response.GetResponseStream()
Dim reader As New StreamReader(dataStream)
Dim responseFromServer As String = reader.ReadToEnd()
' Atvaizduoti atsakymą
Console.WriteLine(responseFromServer)
reader.Close()
dataStream.Close()
response.Close()
End Sub
End Module
Užklausose įrašų skaičius negali viršyti 100 !