kb:web:balans_common_web_objects

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
kb:web:balans_common_web_objects [2016/03/02 13:18] – [Balans WEB API] milanokb:web:balans_common_web_objects [2020/11/13 09:32] (current) – [Realizovane grane] aleksandar
Line 1: Line 1:
 ====== Balans Common Web Objects ====== ====== Balans Common Web Objects ======
  
 +BCWO se deli na grane navedene u tablici ispod, a koje su različito implementirane. U pitanju je kombinacija RESTful i SOAP tehnika.
  
 +===== RESTful  =====
  
-    - [[:kb:balans_veb_servisi_autorizacija|Autorizacija i dobijanje prava pristupa sistemu]] +REST je skraćeno od "REpresentational State Transfer" i široko je prihvaćena i u upotrebi tehnologija na bazi HTTP protokola. Veb servisi koji koriste ovu tehniku se nazivaju RESTful. Ovo je najčešći vid komunikacije na internetu danas. 
-    - [[:kb:balans_veb_servisi_sifarnici|Manipulacija šifarnicima sistema]]+ 
 +===== SOAP ===== 
 + 
 +SOAP je skraćenica za "Simple Object Access Protocol" koji je nastao 1998. Može da se posmatra kao "uži" RESTful servis (iako je stariji), jer koristi isključivo POST HTTP metod, XML i mora da sadrži odredjena HTTP zaglavlja sa tačnim vrednostima. 
 + 
 +Mnogi razvojni alati za SOAP veb servise automatski stvaraju WSDL ( Web Services Description Language) XML specifikaciju koja je dostupa dodavanjem //?WSDL// na glavni URL servisa. Velika prednost je što moderna razvojna okruženja (Visual Studio, NetBeans) podržavaju uvoz ove specifikacije i automatski prave potreban kod, tako da korisnik ne programira taj deo. 
 + 
 +Linkovi: 
 + 
 +https://www.w3.org/TR/soap/\\ 
 +https://www.w3schools.com/xml/xml_soap.asp \\ 
 +https://www.tutorialspoint.com/soap/what_is_soap.htm 
 + 
 +Alati za testiranje: 
 + 
 +soapUI https://www.soapui.org/ 
 + 
 +===== Realizovane grane ===== 
 + 
 +Grane su nezavisne. Jedina dodirna tačka grana jeste odeljak 1 koji svi koriste za dobijanje prava pristupa 
 + 
 +Za upotrebu svih metoda, neohodan je **token**. Token se dobija pozivom metodi GetToken ([[:kb:balans_veb_servisi_autorizacija|opisana u odeljku 1]]) preko dodeljenih podataka za pristup - korisnički nalog i šifra. Ekvivalentan je API key stringu, koji je široko raspostranjem na internetu, sa tom razlikom što token ima značajno kraći period važenja. 
 + 
 +Takodje je potrebno da Melany Software prvo autorizuje kompaniju (što je već uradjeno kada dobijete nalog i šifru). 
 + 
 +^RB^Odeljak^Implementacija^Revizija| 
 +|1|[[:kb:balans_veb_servisi_autorizacija|]]|RESTful i SOAP|19-6-11| 
 +|2|[[:kb:balans_veb_servisi_sifarnici|]]|SOAP|20-11-13| 
 +|3|[[:kb:balans_veb_servisi_fieldops|FieldOps (Teledirekt) operacije]]|RESTful|19-6-11| 
 + 
 + 
 +===== Primer korišćenja (redosleda) ===== 
 + 
 +Ukoliko je cilj komunikacije sa servisom da se dobiju informacije o stanjima artikala na skladištima, a pto vraća metoda //StockLevel//, za njen poziv klijent mora da zna još i koje vrednosti parametara može da upotrebi: 
 + 
 +   * U opštem slučaju, redosled radnji počinje pozivom metodi //GetToken //da bi se dobio token, kao obavezan parametar svih metoda. 
 +  * Dalje, za moguće vrednosti parametra __stockType__, mora prethodno da izvrši poziv //GetStockTypes//  i dobije rezultat. 
 +  * Ako želi da vidi samo konkretno skladište, onda u __stockID __može da unese neku vrednost ID skladišta koje je dobio prethodnim pozivom metodi //StocksAvailable//. Ao želi sva skladišta, unosi nulu za ovaj parametar. 
 +  * Analogno, pozivom metodi //ItemsAvailable//, klijent saznaje IDjevi artikala, šifre i nazivi i onda te podatke upotrebiti u parametrima __itemID,____itemArticle__, __itemType__, __itemColor__, __itemModel__  ili __itemTitle __ove funkcije. \\  \\ Ovde naglašavam da se ovi parametri medjusobno isključuju: Ako zadata kombinacija itemID i itemColor vrednosti koja ne postoji, onda sistem vraća prazan rezultat. Isto se dobija, na primer, da se preda kombinacija itemArticle, itemType i itemTitle vrednosti koja ne postoji u bazi podataka. I slično. \\ U ovakvim slučajevima se koriste džoker vrednosti koje ne filtriraju rezultat po datom parametru. Za numeričke vrednosti džoker je **nula**, a za tekstualne **znak procenat %. **Neki parametri mogu da se izostave, a prema dokumentaciji konkretne metode**.** \\  \\ Za poziv ovoj metodi prvo treba saznati podatke koje vraćaju metode //GroupsAvailable, SubgroupsAvailable, ManufacturersAvailable i CategoriesAvailable//
 + 
 +Sumirano za primer, redosled bi bio: 
 + 
 +  - GetToken('', userName, userCode, [authUser], [authCustomer]) → token 
 +  - GetStockTypes(token) → Spisak mogućih vrednosti za tipove skladišta 
 +  - StocksAvailable(token) → Informacije o postojećim skladištima 
 +  - GroupsAvailable(token) → Informaceij o postojećim grupama 
 +  - SubgroupsAvailable(token, [groupID]) → Informacije o postojećim podgrupama 
 +  - CategoriesAvailable(token, [groupID], [subgroupID]) → spisak kategorija u sistemu 
 +  - ManufacturersAvailable(token) → Informacije o zabeleženim proizvodjačima 
 +  - ItemsAvailable (sessToken, [groupID], [subgroupID], [categoryID], [manufID], [itemID], [itemArticle], [itemType], [itemColor], [itemModel], [itemTitle], [itemBarcode]) → Spisak Item objekata (artikli) 
 +  - StockLevel (sessToken, stockID, stockType, [forDate], [itemID], [itemArticle], [itemType], [itemColor], [itemModel], [itemTitle],[priceListName],[priceListDate]) → rezultat stanja artikala na skladištima
  
  
  • kb/web/balans_common_web_objects.1456924696.txt.gz
  • Last modified: 2016/03/02 13:18
  • by milano