Přeskočit na hlavní obsah

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 parametru LogPath.

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 key
  • API 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.