Instalace a konfigurace ESO9 Web API
Systémové požadavky
ESO9 Web API je webová aplikace nasazená na IIS. Pro provoz je potřeba:
- .NET Framework 4.6.1
- IIS verze 10
- Pro produkční provoz doporučený protokol HTTPS. HTTP je možné použít, ale není doporučené pro citlivou komunikaci.
Pro testování volání je doporučený Postman.
Nasazení na IIS
Po nasazení aplikace na IIS se konfigurace provádí v souboru web.config.
Hlavním parametrem je connection string k databázi ESO9:
<connectionStrings>
<add name="ConnStr"
connectionString="Provider=SQLOLEDB.1;Persist Security Info=True;Password=***;User ID=***;Initial Catalog=ESO9START;Data Source=SQL-ESO-02\SQL2019" />
</connectionStrings>
Pro asynchronní volání metodou getDataAsync je potřeba nastavit také ConnStrSQLAsync. Connection string musí obsahovat Asynchronous Processing=true:
<add name="ConnStrSQLAsync"
connectionString="Persist Security Info=True;Password=***;User ID=***;Initial Catalog=ESO9START;Data Source=SQL-ESO-02\SQL2017;Asynchronous Processing=true" />
Parametry v sekci ESO9APIGeneral.My.MySettings
DefContentType
Výchozí typ komunikace, pokud protistrana v hlavičce nezašle Content-Type.
<setting name="DefContentType" serializeAs="String">
<value>application/xml</value>
</setting>
Podporované hodnoty jsou application/xml a application/json.
Log
Určuje, zda aplikace vytváří logovací soubory s příchozími požadavky a odpověďmi.
<setting name="log" serializeAs="String">
<value>1</value>
</setting>
0- aplikace logovací soubory nevytváří.1- aplikace logovací soubory vytváří v adresáři z parametruLogPath.
LogPath
Cesta k adresáři s logovacími soubory.
<setting name="LogPath" serializeAs="String">
<value>C:\Temp\LogWebApi</value>
</setting>
Účet, pod kterým běží IIS aplikace, musí mít do tohoto adresáře oprávnění zápisu.
IDLogUser
ID uživatele ESO9, pod kterým jsou logovány požadavky do logovací databáze.
<setting name="IDLogUser" serializeAs="String">
<value>76</value>
</setting>
CommandTimeout
Počet sekund, po který aplikace čeká na zpracování synchronního požadavku v databázi. Po překročení limitu je zpracování ukončeno.
<setting name="CommandTimeout" serializeAs="String">
<value>30</value>
</setting>
CommandTimeoutAsync
Počet sekund, po který aplikace čeká na odpověď asynchronního požadavku. Pokud požadavek nedoběhne v limitu, zpracování pokračuje na databázovém serveru a Web API vrátí odpověď s ID požadavku. Výsledek se následně zjišťuje voláním vltyp = 997.
<setting name="CommandTimeoutAsync" serializeAs="String">
<value>10</value>
</setting>
CheckReplayRequest
Určuje, zda aplikace kontroluje opakování stejných požadavků v časovém intervalu daném parametrem ReplayRequestTime.
<setting name="CheckReplayRequest" serializeAs="String">
<value>0</value>
</setting>
0- nekontroluje opakování stejných požadavků.1- kontroluje opakování stejných požadavků.
ReplayRequestTime
Počet sekund, po které nelze opakovat stejný dotaz, pokud je CheckReplayRequest = 1.
<setting name="ReplayRequestTime" serializeAs="String">
<value>30</value>
</setting>
RequestMaxSecValidity
Počet sekund platnosti vygenerovaného podpisu x-eso9-signature od jeho vygenerování po obdržení dotazu.
<setting name="RequestMaxSecValidity" serializeAs="String">
<value>3600</value>
</setting>
RequestedVersion
Verze aplikačního serveru.
<setting name="RequestedVersion" serializeAs="String">
<value>6.0</value>
</setting>
ServerName
Jméno počítače aplikačního serveru.
<setting name="ServerName" serializeAs="String">
<value>******</value>
</setting>
Nastavení v ESO9
Od verze ESO9 7.1 je možné nastavit Web API přímo v činnosti 9.14.1 Web API. V činnosti je seznam subjektů napojených přes Web API do databáze ESO9.
V činnosti se nastavují standardní parametry:
API keyAPI hash- propojení s konkrétním subjektem v aplikaci
Dále se zde nastavují parametry pro automatické mazání starých záznamů:
- Rušit staré záznamy - ano/ne.
- Starší než (dnů) - určuje stáří záznamů určených ke smazání.
- Email pro zasílání info o zpracování.
- Email pro zasílání informací o chybách.
Z činnosti lze staré záznamy smazat také tlačítkem Smazání starších záznamů. Mazání probíhá po 5000 záznamech, aby výrazně neomezovalo práci uživatelů.
Automatické mazání starých záznamů
Pravidelné mazání starých záznamů z tabulky WS_JOURNAL je potřeba zajistit spouštěním SQL JOBu. JOB musí volat proceduru:
exec spWSDeleteJournal @vlZasilatInfo SmallInt = 1
Význam parametru @vlZasilatInfo:
0- nezasílat informaci.1- zasílat informaci.
Procedura v transakci smaže starší záznamy podle nastavení Starší než (dnů), založí informaci do logovací databáze a zašle e-mail o zpracování. Pokud při mazání dojde k chybě, transakce se odroluje a odešle se e-mail s informací o chybách.
Databázové tabulky
Pro fungování ESO9 Web API jsou v databázi tabulky:
WS_APPLICATION- přihlašovací a identifikační údaje aplikací, které se hlásí k databázi ESO9.WS_JOURNAL- veškerá komunikace mezi ESO9 a třetí stranou přes Web API, včetně příchozích požadavků a odchozích zpráv.
Od verze ESO9 6.6 jsou tyto tabulky součástí ESO9 Start.