Tickets - Komunikačný protokol
<!DOCTYPE html> <html> <head> <meta charset="UTF-8" /> <title>Dokumentácia ExternalSystem services</title>
<style type="text/css"> </style>
</head> <body>
Obsah
Dokumentácia ExternalSystem vzdialených služieb pre modul TICKETS
História dokumentácie
<thead> </thead> <tbody> </tbody>Dátum vydania | Verzia dokumentu | Popis zmien | Kto zmeny vykonal |
15.05.2015 | 1.0 | Založenie dokumentácie | Juraj Pacolt |
<footer></footer>
<a name="obsah"></a>
Obsah
- <a href="#popis">Popis</a>
-
<a href="#metody-komunikacneho-interfaceu">Metódy komunikačného interface-u</a>
- <a href="#metoda-test">Metóda "test"</a>
- <a href="#metoda-check-ticket">Metóda "checkTicket"</a>
- <a href="#metoda-use-ticket">Metóda "useTicket"</a>
- <a href="#navratove-kody">Návratové kódy</a>
<footer></footer>
<a name="popis"></a>
Popis
Komunikačný interface ExternalSystem je určený v rámci modulu Tickets na overovanie a označovanie lístkov resp. vstupeniek cez externé systémy využívajúce tento interface.
<a name="metody-komunikacneho-interfaceu"></a>
Metódy komunikačného interface-u
Komunikačný interface využíva na prenos správ protokol HTTP, prípadne HTTPS. Jednotlivé dotazy
sú typu REST, tzn. štandardné URI linky s prípadnými parametrami.
Pričom niektoré požiadavky prípadne návratové správy, resp. odpovede sú typu JSON.
Ako content type sa očakáva application/json
.
V každej metóde komunikácie je potrebné uviesť registrationNumber
. Toto registračné číslo je číslo
zaregistrovaného externého systému v module Tickets. Pokiaľ sa dané číslo nenájde v zozname zaregistrovaných
externých systémov, prípadne pokiaľ má externý systém zablokovanú komunikáciu, resp. nie je povolený, modul
Tickets nedovolí vykonať požiadavku.
<a name="metoda-test"></a>
Metóda "test"
Metóda test
slúži iba na preverenie komunikácie a validáciu základnej funkčnosti modulu Tickets.
http://server:port/Tickets/json/ExternalSystem/test/{registrationNumber}/{testMsg}
Vstupné parametre
registrationNumber
- registračné číslo externého systému v module Tickets.testMsg
- testovacia správa.
Požiadavka
<code> GET http://server:port/Tickets/json/ExternalSystem/test/48973453498/Testovaci retazec ... </code>
JSON návratovej správy
<code> ... cezater icavotseT </code>
<a name="metoda-check-ticket"></a>
Metóda "checkTicket"
Pri volaní tejto metódy sa v prvom rade validuje externý systém. Potom sa preverí existencia lístka a preverí sa aj platnosť udalosti pre ktorú je lístok určený. Pokiaľ je všetko v poriadku, tak v návratovej správe na túto požiadavku sa vracajú informácie o danom lístku, resp. vstupenke.
http://server:port/Tickets/json/ExternalSystem/checkTicket
Požiadavka
<code> POST http://server:port/Tickets/json/ExternalSystem/checkTicket </code>
JSON požiadavky
<code> { "registrationNumber": 48973453498, "ticketNumber": "TU2DL18461043152218318474" } </code>
registrationNumber
- registračné číslo externého systému v module Tickets.ticketNumber
- číslo lístka, musí existovať v module Tickets pre platnú udalosť.
JSON návratovej správy
<code> { "ticket": { "ticketNumber": "TU2DL18461043152218318474", "eventName": "Test udalost 2", "ticketTypeName": "Detský lístok", "price": 1, "freePrice": null, "active": false, "used": false, "canceled": false, "externalSystemName": null, "pluCode": null, "pluName": null }, "returnMessage": { "message": "The event 'Test udalost 2 (TU2)' expired.", "code": 9 } } </code>
<a name="metoda-use-ticket"></a>
Metóda "useTicket"
Pri volaní tejto metódy sa taktiež validuje externý systém. Potom sa preverí existencia lístka a preverí sa aj platnosť udalosti pre ktorú je lístok určený. Zároveň sa preverí, či je lístok vydaný a či náhodou nie je stornovaný.
http://server:port/Tickets/json/ExternalSystem/useTicket
Požiadavka
<code> POST http://server:port/Tickets/json/ExternalSystem/useTicket </code>
JSON požiadavky
<code> { "registrationNumber": 48973453498, "ticketNumber": "TU2DL18461043152218318474" } </code>
registrationNumber
- registračné číslo externého systému v module Tickets.ticketNumber
- číslo lístka, musí existovať v module Tickets pre platnú udalosť.
JSON návratovej správy
<code> { "ticket": { "ticketNumber": "TU2DL18461043152218318474", "eventName": "Test udalost 2", "ticketTypeName": "Detský lístok", "price": null, "freePrice": null, "active": true, "used": true, "canceled": false, "externalSystemName": "Blue Gastro S01", "pluCode": 123, "pluName": "Detsky listok" }, "returnMessage": { "message": "Everything okay.", "code": 0 } } </code>
<a name="navratove-kody"></a>
Návratové kódy
Jednotlivé metódy v časti returnMessage
pri návratovej správe vracajú kód aj správu ako daná požiadavka
dopadla. V nasledujúcej tabuľke je zoznam všetkých návratových kódov, ktoré môžu nastať.
</tbody>
Kód | Popis |
0 | Všetko je v poriadku. Požiadavka bola spracovaná. |
1 | Neznámy stav. Predpoklad je, že ide o chybu. |
2 | Externý systém neexistuje. |
3 | Externý systém existuje, ale nie je povolený. |
4 | Lístok neexistuje. |
5 | Nie je definovaná udalosť pre lístok. |
6 | Typ lístka nie je definovaný. |
7 | Typ lístka nie je povolený. |
8 | Udalosť nie je povolená. |
9 | Udalosť je po dátume a čase platnosti. |
10 | Udalosť ešte nezačala, nie je naštartovaná. |
11 | Predaj lístka nie je povolený. |
12 | Lístok nie je aktívovaný. |
13 | Lístok už je aktivovaný. |
14 | Lístok je už použitý. |
15 | Lístok bol stornovaný. |
16 | Lístok je rezervovaný pre iný systém. |
17 | Lístok už je rezervovaný (pokiaľ je požiadavka z rovnakého systému). |
18 | Udalosť nie je uzavretá. |
19 | Lístok nie je validný. |
20 | Udalosť nie je validná. |
</body> </html>