Skip Ribbon Commands
Skip to main content
Navigate Up
Sign In

Navodila

:

WEB_Services

MIT navodila za uporabo programa Orkester

Orkester spletne storitve - WEB Services

Za administracijo dostopov in pravice je zadolžen administrator baze podatkov, ki s pravicami določa do katerih tabel ima spletni servis dostop. Spletni servis mora biti tudi zaščiten s SSL protokolom, ker se po spletu prenašajo zaupni podatki. Nekoliko manj varnostnega tveganja je, kadar spletna storitev ne seže izven lokalnega omrežja.

 

Administrator sistema se mora zavedati, da se v bazi hranijo tudi osebni podatki, ki jih obravnavajo zakoni v sklopu GDPR.​

1 Namestitev

1.1   IIS

Namestitev se na IIS (Internet Information Services) strežnik izvede enako kot za druge spletne strani. MIT zagotovi paket datotek za namestitev, ki se prekopirajo na izbran imenik, do katerega ima dostop IIS. V kolikor SQL strežnik ni na istem strežniku kot IIS, potem je potrebno zagotoviti dostop do MS SQL strežnika, na katerem je nameščena MIT Orkester baza. Razlogi za onemogočen dostop so navadno v požarnem zidu – Privzeta vrata za korensko namestitev SQL strežnika je 1433).

Pravilna namestitev v WAN mora zaradi zaradi varnosti upoštevati sledeče:

  • Poseben IIS strežnik v DMZ samo z dostopom preko enih vrat v notranjo omrežje do SQL strežnika ali/in
  • Zapora dostopa na WS samo za točno določene IP naslove. 
  • Nameščen SSL protokol na IIS.
  • Nameščen SSL protokol na notranjem SQL strežniku in dostop samo s tem protokolom.
  • Minimalne pravice uporabnika omejene samo na izbrane tabele. 

1.2  Pravice na SQL strežniku

Administrator baze podatkov mora na SQL strežniku zagotoviti sledeče:

-          Uporabnika z geslom – SQL overitev (SQL server Authentification)

-          Pravice uporabnika za bralni dostop do posameznih tabel

-          Pravice uporabnika za bralno / pisalni dostop do tabel povezanih s polnjenjem podatkov (podrobnosti pri posebnih funkcijah)

-          Bralne pravice do tabel VSI_BAZABAZ, VSI_BAZAPOL, VSI_BAZAMIT za delovanje vpogleda v podatkovni slovar s strukturo tabel (apl/DataDictionary).¸

Administrator si lahko pri določanju pravic pomaga z vlogami (database roles). Z zagonom procedur (EXEC + ime procedure) VSI_CreateRoleMit_datareader, [dbo].[VSI_CreateRoleMit_datawriter] in [dbo].[VSI_CreateRoleMit_exec] se pripravilo vloge MIT_datareader_*, MIT_datawritter_* in MIT_exec. Uporabniku lahko potem samo dodelite članstvo. Je pa ta poenostavljen način primeren za notranje spletne storitve.

1.3  Dokumentacija

Podrobno dokumentacijo dobite na samem portalu. Podrobnosti se nahajajo v zavihku API.

2    Testiranje

2.1        Testni portal MIT

Testni portal se nahaja na naslovu: https://demo.mit-ing.si/ws_orkester. Testni portal je namenjen preverjanju delovanja spletne storitve. 

POZOR: struktura tabel je lahko pri naročniku drugačna kot na testnem portalu!

Prijavni podatki na testni portal:

-          UserID: WS

-          Password: OsnovnoGeslo1

-          InitialCatalog: DEMO_SLO

-          DataSource: MITDEMO01\\SQL2016

2.2        Osnovna funkcija GET /api/values

Za testiranje delovanja je na voljo GET funkcija brez parametrov.

Storitev vrne string:

<string xmlns="http://schemas.microsoft.com/2003/10/Serialization/">Orkester Web Service, MIT informatika d.o.o.</string>

Primer:GET 

https://demo.mit-ing.si/WS_ORKESTER/api/values

2.3        Orodje za testiranje

Za testiranje lahko uporabite različna orodja. Sami testiramo z: 

- Postman 

- Fiddler 

JSON POST nize je potrebno dodati v telo poizvedbe.

2.4   Napake

HTTP/1.1 415 Unsupported Media Type​:    manjka oznaka Content-Type: application/json

3 API vmesnik

3.1        Niz za povezavo - connection

Objekt se imenuje connection. Za povezave je potrebno pridobiti od administratorja baze podatkov sledeče:

  • -          Ime uporabnika
  • -          Geslo
  • -          Naslov SQL strežnika
  • -          Ime baze podatkov

Podatke je potrebno posredovati pri vsaki poizvedbi v JSON obliki.

Primer povezovalnega niza:

{

    "DataSource": "MITDEMO01\\SQL2016",

    "InitialCatalog": "DEMO_SLO",

    "UserID": "WS",

    "Password": "OsnovnoGeslo1"

}

3.2 API: Ime firme, ki ji pripada baza podatkov

API vrne osnovne podatke o firmi.

POST

https://demo.mit-ing.si/WS_ORKESTER/api/DataDictionary/CompanyData

BODY:

{

    "DataSource": "MITDEMO01\\SQL2016",

    "InitialCatalog": "DEMO_SLO",

    "UserID": "WS",

    "Password": "OsnovnoGeslo1"

}

3.3  Seznam tabel v bazi 

V ERP sistemu MIT Orkester je več kot tisoč tabel. Tabele so združene po področjih tako, da prve tri črke do podčrtaja praviloma določajo, kateremu programskemu paketu pripadajo.  
Funkcija vrne seznam čez tisoč tabel s kratkim opisom.

POST

https://demo.mit-ing.si/WS_ORKESTER/api/DataDictionary/TableList

BODY:

{

    "DataSource": "MITDEMO01\\SQL2016",

    "InitialCatalog": "DEMO_SLO",

    "UserID": "WS",

    "Password": "OsnovnoGeslo1"

}

3.4     Struktura ene tabele

Strukturo tabele dobimo s klicem API TableDescription. Seznam vseh tabel dobimo z ukazom TableList.

POST

BODY:

{

    "DataSource": "MITDEMO01\\SQL2016",

    "InitialCatalog": "DEMO_SLO",

    "UserID": "WS",

    "Password": "OsnovnoGeslo1"

}

4 Poizvedbe in spremembe v tabelah

4.1  Pridobivanje podatkov iz poljubne tabele - select

Osnovna procedura  za vpoglede (SELECT) ene tabele je POST API, ki mu morate v telesu sporočila zagotoviti sledeče podatke:

-          Connection; podatki za povezavo na strežnik (glej zgoraj),

-          queryData elementi SELECT poizvedbe

o   ProcedureType: privzeto 0

o   TableName: ime tabele

o   FieldList: seznam polj v tabeli

o   Where: filter na poizvedbo v formatu TSQL poizvedbe

Primer:

POST 

https://demo.mit-ing.si/WS_ORKESTER/api/api/values​

BODY

{

  "connection": {

    "DataSource": "MITDEMO01\\SQL2016",

    "InitialCatalog": "DEMO_SLO",

    "UserID": "WS",

    "Password": "OsnovnoGeslo1"

  },

  "queryMeta": {

    "ProcedureType": 0,

    "TableName": "VSI_ARTIKLI",

    "FieldList": "SIFPRO,NAZIV,EM",

    "Where": "SIFPRO LIKE '11%'"

  }

}​


4.2 Artikli

Za artikle so tri procedure api/Products:  

  • INSERT: PUT api/Products
  • UPDATE: POST api/Products?sifpro={sifpro}
  • DELETE: POST api/Products?sifpro={sifpro}

PUT:

https://demo.mit-ing.si/WS_ORKESTER/api/Products

Body:

{

  "connection": {

    "DataSource": "MITDEMO01\\SQL2016",

    "InitialCatalog": "DEMO_SLO",

    "UserID": "WS",

    "Password": "OsnovnoGeslo1"

  },

 },
 "InsertMeta": {
  "FieldList":"SIFPRO,NAZIV",
  "Values": "'121','TOMAŽ BUREK'"
 }
}

 

POST:

Body:

{
 "Connection": {

    "DataSource": "MITDEMO01\\SQL2016",

    "InitialCatalog": "DEMO_SLO",

    "UserID": "WS",

    "Password": "OsnovnoGeslo1"

 },
 "InsertMeta": {
  "FieldList":"SIFPRO,NAZIV",
  "Values": "'121','DOBER BUREK SPLOH'"
 }
}

 

DELETE:

https://demo.mit-ing.si/WS_ORKESTER/api/products​

Body:

{

    "DataSource": "MITDEMO01\\SQL2016",

    "InitialCatalog": "DEMO_SLO",

    "UserID": "WS",

    "Password": "OsnovnoGeslo1"

}

 

4.3 Partnerji

Za partnerje so tri procedure api/Products:  :  
  • INSERT: PUT api/Customers
  • UPDATE: POST api/Customers?sifrk={sifrk}
  • DELETE: POST api/Customers?sifrk={sifrk}

4.4 Trenutne zaloge

Podatki o zalogah so pogosto vir poizvedb, zato klice navajamo posebej.

POST 

https://demo.mit-ing.si/WS_ORKESTER/api/values​

Body:

{

  "connection": {

    "DataSource": "MITDEMO01\\SQL2016",

    "InitialCatalog": "DEMO_SLO",

    "UserID": "WS",

    "Password": "OsnovnoGeslo1"

  },

  "queryMeta": {

    "ProcedureType": 0,

    "TableName": "VSI_ZALOGE",

    "FieldList": "[SIFSKL],[SIFPRO],[ZALOGA],[REZ],[NAROCENO],[PROSTO],[NA_PREDRAC],[NEK_IZ],[NEK_PR],[NAROCILA],[Q_PL]"

    "Where"; "SIFSKL LIKE 'IZD%'"

  }

}​ 

5 . Možne napake

415 (Unsupported Media Type) "Message": "The request entity's media type 'text/plain' is not supported..." V Header je potrebno dodati Content-Type:application/json