Protokol REST (KS webAPI): Porovnání verzí

Z Prirucky
(založena nová stránka s textem „ <h1>KS REST WebAPI</h1> <h2>Základní informace</h2> Komplexní API pro správu dat souhrnů údajů, zaměstnanců a autentizaci uživatelů. Umožňuje vkládání, aktualizaci, výběr a mazání dat v různých souhrnech údajů na základě specifikovaných kritérií a operací prováděných prostřednictvím HTTP metod. <!-- AUTENTIZACE --> <h2 id="access">Autentizace k API KS Program</h2> <ol>…“)
 
 
(Není zobrazeno 12 mezilehlých verzí od stejného uživatele.)
Řádek 1: Řádek 1:
        <h1>KS REST WebAPI</h1>
         <h2>Základní informace</h2>
         <h2>Základní informace</h2>
Komplexní API pro správu dat souhrnů údajů, zaměstnanců a autentizaci uživatelů.
Komplexní API pro správu dat souhrnů údajů, zaměstnanců a autentizaci uživatelů.
Řádek 5: Řádek 4:
specifikovaných kritérií a operací prováděných prostřednictvím HTTP metod.
specifikovaných kritérií a operací prováděných prostřednictvím HTTP metod.
         <!-- AUTENTIZACE -->
         <!-- AUTENTIZACE -->
         <h2 id="access">Autentizace k API KS Program</h2>
         <h2 id="access">Autentizace</h2>
         <ol>
         <ol>
             <li>
             <li>
Řádek 17: Řádek 16:
             <li>
             <li>
                 <b>Autentizace</b>
                 <b>Autentizace</b>
                 <p>Pro autentizaci je třeba odeslat na adresu <i>.../KSAsServer/WebService/WebAPI/rest/users/authenticate</i> JSON body s údaji <i>"Username"</i> a <i>"Password"</i>. Pokud jsou tyto údaje správné, obdržíte <strong>token</strong>, který je nutný pro používání API po určitou dobu. Token i jeho platnost jsou vráceny v těle odpovědi.</p>
                 <p>Pro autentizaci je třeba odeslat na adresu <i>.../KSAsServer/WebService/WebAPI/rest/users/authenticate</i> JSON body s údaji <i>"Username"</i> a <i>"Password"</i>. Pokud jsou tyto údaje správné, obdržíte <b>token</b>, který je nutný pro používání API po určitou dobu. Token i jeho platnost jsou vráceny v těle odpovědi.</p>
             </li>
             </li>
             <li>
             <li>
Řádek 35: Řádek 34:
                   <li>
                   <li>
                       V URI
                       V URI
                           <pre>GET /KSAsServer/WebService/WebAPI/rest/KmenoveUdaje/Jmeno/Karel?<strong>token=eyJ0eXAwibmFtZSI6InBhdmVIuMDGtBE1GxcdkwUuTTLDL4&</strong></pre>
                           <pre>GET /KSAsServer/WebService/WebAPI/rest/KmenoveUdaje/Jmeno/Karel?token=eyJ0eXAwibmFtZSI6InBhdmVIuMDGtBE1GxcdkwUuTTLDL4&</pre>
                   </li>
                   </li>
                 </ul>
                 </ul>
Řádek 42: Řádek 41:
         </ol>
         </ol>


         <h3>Příklad:</h3>
         <h3>Příklad</h3>
         <p><b>Požadavek</b></p>
         <p><b>Požadavek</b></p>
         <pre>
         <pre>
Řádek 68: Řádek 67:
         <!-- METODY -->
         <!-- METODY -->
         <h1 id="methods">Metody</h1>
         <h1 id="methods">Metody</h1>
         <p>Veškerá dokumentakce k metodám: https://prirucky.ksprogram.cz/index.php?title=Metody_(KS_webAPI).</p>
         <p>Veškerá dokumentakce k metodám: [[Metody (KS webAPI)|Metody]].</p>
 
         <!-- PARAMTERY -->
         <!-- PARAMTERY -->
         <h3>Parametry</h3>
         <h3>Parametry</h3>
         <ul>
         <ul>
             <li>
             <li>
                 <strong>Request header</strong>
                 <b>Request header</b>
                <p>
<p>Content-Type -  application/raw</p>
                    Content-Type -  application/raw
<p>Accept -        application/json</p>
                    Accept -        application/json
                </p>
             </li>
             </li>
             <li>
             <li>
                 <strong>Items</strong>
                 <b>Items</b>
                 <p>
                 <p>
                     Vyplňuje se v případě volání metody GET/POST. Předává se seznam <a href="https://prirucky.ksprogram.cz/index.php?title=Polo%C5%BEky_(KS_webAPI)">položek</a>, které budou v návratové datové struktuře, na které má uživatel oprávnění.
                     Vyplňuje se v případě volání metody GET/POST. Předává se seznam [[Položky (KS webAPI)|Položky]], které budou v návratové datové struktuře, na které má uživatel oprávnění.
                     Jednotlivé položky se oddělují čárkou. Pokud bude v parametru předáno více položek, vrací se návratová datová struktura, která obsahuje všechny
                     Jednotlivé položky se oddělují čárkou. Pokud bude v parametru předáno více položek, vrací se návratová datová struktura, která obsahuje všechny
                     položky uvedené v parametru oddělené čárkami. Pokud bude zadáno více 'Item' v parametru, bude vrácena množina údajů odpovídající průniku
                     položky uvedené v parametru oddělené čárkami. Pokud bude zadáno více 'Item' v parametru, bude vrácena množina údajů odpovídající průniku
Řádek 88: Řádek 86:
                 </p>
                 </p>
             </li>
             </li>
             <li><a href="https://prirucky.ksprogram.cz/index.php?title=JsonSearchCriteria"><strong>JsonSearchCriteria</strong></a></li>
             <li><b>[[JsonSearchCriteria]]</b></li>


             <li><a href="https://prirucky.ksprogram.cz/index.php?title=JsonOptions"><strong>JsonOptions</strong></a></li>
             <li><b>[[JsonOptions]]</b></li>


             <li><a href="#access"><strong>Token</strong></a></li>
             <li><b>Token</b></li>
         </ul>
         </ul>
         <!-- CESTY -->
         <!-- CESTY -->
Řádek 98: Řádek 96:
         <ul>
         <ul>
             <li>
             <li>
                 <b>aItemGroup</b>
                 <b>ItemGroup</b>
                 <p>
                 <p>
                     (Required)
                     (Required)
                     Název souhrnu údajů. Parametr {aItemGroup} je nutno zaměnit za reálný souhrn údajů.
                     Název souhrnu údajů. Parametr {ItemGroup} je nutno zaměnit za reálný souhrn údajů.
                     Předává se název skupiny údajů (entity) v KS mzdy (např. 'KmenoveUdaje').
                     Předává se název skupiny údajů (entity) v KS mzdy (např. 'KmenoveUdaje').
                 </p>
                 </p>
             </li>
             </li>
         </ul>
         </ul>
<pre>
GET /KSAsServer/WebService/WebAPI/rest/{ItemGroup]/{Item}?token=12asd16a5sda1s32d&Items=Jmeno,Prijmeni,OsCislo,RodneCislo&JsonSearchCriteria=[{ 'Item': 'OsCislo', 'Operator': '<=', 'Value': 100 }]
</pre>


         <!-- GET-SOUHRN METHOD -->
         <!-- GET-SOUHRN METHOD -->
Řádek 111: Řádek 115:
         <p>
         <p>
             <b>Povinné parametry:</b>
             <b>Povinné parametry:</b>
             Token, aItemGroup.
             Token, ItemGroup.
         </p>
         </p>
         <p>
         <p>
Řádek 118: Řádek 122:
         </p>
         </p>


         <h3>Příklad:</h3>
         <h3>Příklad</h3>
         <p>Vrátí data ze souhrnu údajů "KmenoveUdaje", kde OsCislo <= 100.</p>
         <p>Vrátí data ze souhrnu údajů "KmenoveUdaje", kde OsCislo <= 100.</p>
         <p><b>Požadavek</b></p>
         <p><b>Požadavek</b></p>
         <pre>GET /KSAsServer/WebService/WebAPI/rest/KmenoveUdaje/?token=12asd16a5sda1s32d&Item=Jmeno,Prijmeni,OsCislo,RodneCislo&JsonSearchCriteria=[{ 'Item': 'OsCislo', 'Operator': '<=', 'Value': 100 }]</pre>
         <pre>GET /KSAsServer/WebService/WebAPI/rest/KmenoveUdaje/?token=12asd16a5sda1s32d&Items=Jmeno,Prijmeni,OsCislo,RodneCislo&JsonSearchCriteria=[{ 'Item': 'OsCislo', 'Operator': '<=', 'Value': 100 }]</pre>
         <p><b>Odpověď</b></p>
         <p><b>Odpověď</b></p>
         <pre>
         <pre>
Řádek 139: Řádek 143:
         <p>
         <p>
             <b>Povinné parametry:</b>
             <b>Povinné parametry:</b>
             Token, aItemGroup, aOsCislo.
             Token, ItemGroup, aOsCislo.
         </p>
         </p>
         <p>
         <p>
Řádek 146: Řádek 150:
         </p>
         </p>


         <h3>Příklad:</h3>
         <h3>Příklad</h3>
         <p>Vrátí data ze souhrnu údajů "KmenoveUdaje", kde OsCislo = 1. Vrátí sloupce OsCislo, Titul, Jmeno, Primeni, RodneCislo</p>
         <p>Vrátí data ze souhrnu údajů "KmenoveUdaje", kde OsCislo = 1. Vrátí sloupce OsCislo, Titul, Jmeno, Primeni, RodneCislo</p>
         <p><b>Požadavek</b></p>
         <p><b>Požadavek</b></p>
         <pre>GET /KSAsServer/WebService/WebAPI/rest/KmenoveUdaje/1?token=eyJ0eXAiOIiwi7_GcdkwUuTTLDL4&items=OsCislo, Titul, Jmeno, Prijmeni, RodneCislo</pre>
         <pre>GET /KSAsServer/WebService/WebAPI/rest/KmenoveUdaje/1?token=eyJ0eXAiOIiwi7_GcdkwUuTTLDL4&Items=OsCislo, Titul, Jmeno, Prijmeni, RodneCislo</pre>
         <p><b>Odpověď</b></p>
         <p><b>Odpověď</b></p>
         <pre>
         <pre>
Řádek 164: Řádek 168:


         <!-- GET-ITEM METHOD -->
         <!-- GET-ITEM METHOD -->
         <h2 id="get-item">GET - Vrací data, kde údaj 'aItem' má hodnotu 'aValue' v rámci zadaného souhrnu údajů 'aItemGroup'.</h2>
         <h2 id="get-item">GET - Vrací data, kde údaj 'Item' má hodnotu 'Value' v rámci zadaného souhrnu údajů 'ItemGroup'.</h2>
         <p>
         <p>
             <b>Povinné parametry:</b>
             <b>Povinné parametry:</b>
             Token, aItemGroup, aItem, aValue.
             Token, ItemGroup, Item, Value.
         </p>
         </p>
         <p>
         <p>
Řádek 174: Řádek 178:
         </p>
         </p>


         <h3>Příklad:</h3>
         <h3>Příklad</h3>
         <p>Vrátí data ze souhrnu údajů "KmenoveUdaje", kde Jmeno = Pavel.</p>
         <p>Vrátí data ze souhrnu údajů "KmenoveUdaje", kde Jmeno = Pavel.</p>
         <p><b>Požadavek</b></p>
         <p><b>Požadavek</b></p>
Řádek 200: Řádek 204:
         <p>
         <p>
             <b>Povinné parametry:</b>
             <b>Povinné parametry:</b>
             Token, aItemGroup, JsonChangeData (data v těle požadavku).
             Token, ItemGroup, JsonChangeData (data v těle požadavku).
         </p>
         </p>
         <h3>Příklad:</h3>
         <h3>Příklad</h3>
         <p>Vloží data z body požadavku do souhrnu údajů "KmenoveUdaje".</p>
         <p>Vloží data z body požadavku do souhrnu údajů "KmenoveUdaje".</p>
         <p><b>Požadavek</b></p>
         <p><b>Požadavek</b></p>
Řádek 243: Řádek 247:
         <p>
         <p>
             <b>Povinné parametry:</b>
             <b>Povinné parametry:</b>
             Token, aItemGroup, JsonChangeData (data v těle požadavku), JsonSearchCriteria.
             Token, ItemGroup, JsonChangeData (data v těle požadavku), JsonSearchCriteria.
         </p>
         </p>
         <h3>Příklad:</h3>
         <h3>Příklad</h3>
         <p>Aktualizuje data v souhrnu údajů "Kontakty", kde Hodnota = 222 222 222, na Hodnota = 111 111 111. </p>
         <p>Aktualizuje data v souhrnu údajů "Kontakty", kde Hodnota = 222 222 222, na Hodnota = 111 111 111. </p>
         <p><b>Požadavek</b></p>
         <p><b>Požadavek</b></p>
Řádek 277: Řádek 281:
         <p>
         <p>
             <b>Povinné parametry:</b>
             <b>Povinné parametry:</b>
             Token, aItemGroup, JsonSearchCriteria.
             Token, ItemGroup, JsonSearchCriteria.
         </p>
         </p>
         <h3>Příklad:</h3>
         <h3>Příklad</h3>
         <p>Smaže data v souhrnu údajů "Kontakty", kde Hodnota = 111 111 111</p>
         <p>Smaže data v souhrnu údajů "Kontakty", kde Hodnota = 111 111 111</p>
         <p><b>Požadavek</b></p>
         <p><b>Požadavek</b></p>
Řádek 297: Řádek 301:
}</pre>
}</pre>
     </div>
     </div>
== Odkazy ==
* [[Protokoly (KS webAPI)|Protokoly]]

Aktuální verze z 10. 3. 2025, 14:15

Základní informace

Komplexní API pro správu dat souhrnů údajů, zaměstnanců a autentizaci uživatelů. Umožňuje vkládání, aktualizaci, výběr a mazání dat v různých souhrnech údajů na základě specifikovaných kritérií a operací prováděných prostřednictvím HTTP metod.

Autentizace

  1. Zabezpečení protokolu

    Všechny dotazy na API musí být zasílány prostřednictvím zabezpečeného protokolu HTTPS.

  2. Přístupová oprávnění

    Uživatel musí mít povolení k užívání API, které mu uděluje administrátor. K tomu je nezbytné mít vygenerováno jméno a heslo k API.

  3. Autentizace

    Pro autentizaci je třeba odeslat na adresu .../KSAsServer/WebService/WebAPI/rest/users/authenticate JSON body s údaji "Username" a "Password". Pokud jsou tyto údaje správné, obdržíte token, který je nutný pro používání API po určitou dobu. Token i jeho platnost jsou vráceny v těle odpovědi.

  4. Použití tokenu

    Při každém volání API ,mimo autentizaci, je třeba zaslat platný token jedním ze dvou způsobů:

    • V HEADER

      Plain:

      Authorization -   eyJ0eXAwibmFtZSI6InBhdmVIuMDGtBE1GxcdkwUuTTLDL4&
      Bearer:
      Authorization -   Bearer eyJ0eXAwibmFtZSI6InBhdmVIuMDGtBE1GxcdkwUuTTLDL4&

    • V URI
      GET /KSAsServer/WebService/WebAPI/rest/KmenoveUdaje/Jmeno/Karel?token=eyJ0eXAwibmFtZSI6InBhdmVIuMDGtBE1GxcdkwUuTTLDL4&

    Způsob HEADER je preferován před URI.

Příklad

Požadavek

POST /KSAsServer/WebService/WebAPI/rest/user/authenticate

body:
{
    "Username": "jmeno",
    "Password": "heslo"
}
        

Odpověď

{
    "ErrorCode": 0,
    "ErrorMessage": null,
    "ErrorText": null,
    "IsError": false,
    "Message": "Created",
    "ResponseDatetime": "/Date(1720705997339+0200)/",
    "StatusCode": 201,
    "Token": "jkdsjflsdfjsdfklsjdflskdfjs.6tQew",
    "ValidTo": "/Date(1720715997000+0200)/"
}

Metody

Veškerá dokumentakce k metodám: Metody.

Parametry

  • Request header

    Content-Type - application/raw

    Accept - application/json

  • Items

    Vyplňuje se v případě volání metody GET/POST. Předává se seznam Položky, které budou v návratové datové struktuře, na které má uživatel oprávnění. Jednotlivé položky se oddělují čárkou. Pokud bude v parametru předáno více položek, vrací se návratová datová struktura, která obsahuje všechny položky uvedené v parametru oddělené čárkami. Pokud bude zadáno více 'Item' v parametru, bude vrácena množina údajů odpovídající průniku záznamů jednotlivých 'Item'. V případě nezadání paramteru, vrátí všechny položky, na které má uživatel oprávnění.

  • JsonSearchCriteria
  • JsonOptions
  • Token

Proměnné cesty

  • ItemGroup

    (Required) Název souhrnu údajů. Parametr {ItemGroup} je nutno zaměnit za reálný souhrn údajů. Předává se název skupiny údajů (entity) v KS mzdy (např. 'KmenoveUdaje').

GET /KSAsServer/WebService/WebAPI/rest/{ItemGroup]/{Item}?token=12asd16a5sda1s32d&Items=Jmeno,Prijmeni,OsCislo,RodneCislo&JsonSearchCriteria=[{ 'Item': 'OsCislo', 'Operator': '<=', 'Value': 100 }]


GET - Vrací data souhrnu údajů podle zadaného názvu souhrnu.

Povinné parametry: Token, ItemGroup.

Volitelné parametry: JsonSearchCriteria, Items, JsonOptions.

Příklad

Vrátí data ze souhrnu údajů "KmenoveUdaje", kde OsCislo <= 100.

Požadavek

GET /KSAsServer/WebService/WebAPI/rest/KmenoveUdaje/?token=12asd16a5sda1s32d&Items=Jmeno,Prijmeni,OsCislo,RodneCislo&JsonSearchCriteria=[{ 'Item': 'OsCislo', 'Operator': '<=', 'Value': 100 }]

Odpověď

{
    "Data": "[{\"OsCislo\":36,\"Titul\":null,\"Jmeno\":\"Miroslav\",\"Prijmeni\":\"Nový\",\"RodneCislo\":\"123456789\"...}],
    "ErrorCode": 0,
    "ErrorMessage": null,
    "ErrorText": null,
    "IsError": false,
    "Message": "Data nalezena.",
    "ResponseDatetime": "/Date(1720696754982+0200)/",
    "StatusCode": "200"
}

GET - Vyhledá zaměstnance ze skupiny údajů 'KmenoveUdaje' podle zadaného osobního čísla.

Povinné parametry: Token, ItemGroup, aOsCislo.

Volitelné parametry: JsonSearchCriteria, Items, JsonOptions.

Příklad

Vrátí data ze souhrnu údajů "KmenoveUdaje", kde OsCislo = 1. Vrátí sloupce OsCislo, Titul, Jmeno, Primeni, RodneCislo

Požadavek

GET /KSAsServer/WebService/WebAPI/rest/KmenoveUdaje/1?token=eyJ0eXAiOIiwi7_GcdkwUuTTLDL4&Items=OsCislo, Titul, Jmeno, Prijmeni, RodneCislo

Odpověď

{
    "Data": "[{\"OsCislo\":1,\"Titul\":\"Ing.\",\"Jmeno\":\"Pavel\",\"Prijmeni\":\"Hovorka\",\"RodneCislo\":\"581227411\"}]",
    "ErrorCode": 0,
    "ErrorMessage": null,
    "ErrorText": null,
    "IsError": false,
    "Message": "Data nalezena.",
    "ResponseDatetime": "/Date(1720766282434+0200)/",
    "StatusCode": "200"
}

GET - Vrací data, kde údaj 'Item' má hodnotu 'Value' v rámci zadaného souhrnu údajů 'ItemGroup'.

Povinné parametry: Token, ItemGroup, Item, Value.

Volitelné parametry: JsonSearchCriteria, Items, JsonOptions.

Příklad

Vrátí data ze souhrnu údajů "KmenoveUdaje", kde Jmeno = Pavel.

Požadavek

GET /KSAsServer/WebService/WebAPI/rest/KmenoveUdaje/Jmeno/Pavel?token=eyJ0eXAwibmFtZSI6InBhdmVIuMDGtBE1GxcdkwUuTTLDL4&

Odpověď

{
    "Data": "[{\"OsCislo\":1,\"Titul\":\"Ing.\",\"Jmeno\":\"Pavel\",\"Prijmeni\":\"Hovorka\",\"RodneCislo\":\"581227411\"},
            {\"OsCislo\":18,\"Titul\":null,\"Jmeno\":\"Pavel\"...}]",
    "ErrorCode": 0,
    "ErrorMessage": null,
    "ErrorText": null,
    "IsError": false,
    "Message": "Data nalezena.",
    "ResponseDatetime": "/Date(1720766630099+0200)/",
    "StatusCode": "200"
}


POST - Vkládá data do zadaného souhrnu údajů.

Metoda InsertData zapisuje data do databáze KS mzdy.

Povinné parametry: Token, ItemGroup, JsonChangeData (data v těle požadavku).

Příklad

Vloží data z body požadavku do souhrnu údajů "KmenoveUdaje".

Požadavek

POST /KSAsServer/WebService/WebAPI/rest/KmenoveUdaje?token=eyJ0eXAiOiJKV1QtL2BDA7_GcdkwUuTTLDL4&

Body:
[
    {
        "IdPodniku": "1",
        "Jmeno": "Karel",
        "Prijmeni": "Nový",
        "RodneCislo": "9710085892",
        "MistoNarozeni": "Vsetín",
        "StatNar": "CZ",
        "StPrisl": "203",
        "RodinStav": "2",
        "TrCislo": "100",
        "PscTrv": "75501",
        "MistoTrv": "Vsetín",
        "KmenStr": "1",
        "DatumNastupu": "2019-01-01"
    }
]

Odpověď

{
    "Data": "[{\"OsCislo\": 95967,\"IdPodniku\": 1,\"Jmeno\": \"Karel\",\"Prijmeni\": \"Nový\""...}]",
    "ErrorCode": 0,
    "ErrorMessage": null,
    "ErrorText": null,
    "IsError": false,
    "Message": "Vybraná data byla vložena.",
    "ResponseDatetime": "/Date(1720767043837+0200)/",
    "StatusCode": "201"
}

PUT / UPDATE - Aktualizuje data do zadaného souhrnu údajů.

Povinné parametry: Token, ItemGroup, JsonChangeData (data v těle požadavku), JsonSearchCriteria.

Příklad

Aktualizuje data v souhrnu údajů "Kontakty", kde Hodnota = 222 222 222, na Hodnota = 111 111 111.

Požadavek

PUT /KSAsServer/WebService/WebAPI/rest/Kontakty?token=eyJ0eXAiOiJKV1QiLaW_GcdkwUuTTLDL4&JsonSearchCriteria=[{ "Item": "Hodnota", "Operator": "=", "Value": "222 222 222"}]

Body:
[
    {
        "Hodnota": "111 111 111"
    }
]

Odpověď

{
    "Data": "",
    "ErrorCode": 0,
    "ErrorMessage": null,
    "ErrorText": null,
    "IsError": false,
    "Message": "Vybraná data byla aktualizována.",
    "ResponseDatetime": "/Date(1721030337638+0200)/",
    "StatusCode": "204"
}

DELETE - Smaže data v zadaném souhrnu údajů.

Metoda DELETE smaže data v databázi KS mzdy.

Povinné parametry: Token, ItemGroup, JsonSearchCriteria.

Příklad

Smaže data v souhrnu údajů "Kontakty", kde Hodnota = 111 111 111

Požadavek

DELETE KSAsServer/WebService/WebAPI/rest/Kontakty?token=eyJ0eXAiOiJKV1QiLCk&JsonSearchCriteria=[{ "Item": "Hodnota", "Operator": "=", "Value": "111 111 111"}]

Odpověď

{
    "Data": "",
    "ErrorCode": 0,
    "ErrorMessage": null,
    "ErrorText": null,
    "IsError": false,
    "Message": "Vybraná data byla smazána.",
    "ResponseDatetime": "/Date(1721030823993+0200)/",
    "StatusCode": "204"
}


Odkazy