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.