ProfiTour ProfisXML Interface
Seznam služeb:Dokumentace:
Online verze
FAQ :
Často kladené otázky - sem byste se opravdu měli podívat, než začnete rozhraní implementovat.
Informace
Rozhraní je implementováno jako .NET WCF. Pro každou službu je k dispozici basicHttpBinding s XML/SOAP serializací a netHttpBinding pro binární formát dat. Oba bindingy jsou k dispozici jako http i https. Služby lze připojovat jednotlivě podle potřeby, nebo společnou službou Profis.svc, která obsahuje metody ze všech ostatních služeb dohromady.Před začátkem implementace si od CK vyžádejte tyto hodnoty pro každou republiku a jazykovou mutaci webu:
- UzivatelLogin,
- UzivatlHeslo,
- id_Jazyk,
- id_Republika,
- id_Organizace.
Typy zpětně kompatibilních změn:
- Přidání nového parametru metody (na začátek, doprostřed i na konec).
- Odebrání parametru metody.
- Přidání nové položky do vstupního objektu metody (na začátek, doprostřed i na konec).
- Odebrání položky ze vstupního objektu metody.
- Přidání nové metody.
- Přidání nové položky do výstupního objektu metody (na začátek, doprostřed i na konec).
- Odebrání položky z výstupního objektu metody.
Často kladené otázky
Kde začít?
WCF rozhraní neslouží pro přenos celé DB na Váš server, ale jako back-end datový zdroj namísto DB. Čili každé otevření stránky na Vašem webu by mělo zavolat alespoň jednu metodu rozhraní (kromě případu, kdy máte výsledek již uložen v cache).Každá metoda vrací datový typ odvozený od Result, který reprezentuje obecný výsledek metody, nebo chybu reprezentovanou jako Fault. Možné výstupní stavy tedy jsou:
- Fault značí chyby ve volání nebo implementaci na straně klienta. Texty chyb by neměly být prezentovány návštěvníkovi.
- Result.Message obsahuje chybovou zprávu pro klienta podle parametru id_Jazyk a měla by být zobrazena klientovi, protože ji může opravit např. jiným výběrem kritérií. Ostatní výstupní data nemá smysl v takovém případě zpracovávat.
- Result může obsahovat další položky s výstupními daty podle konkrétní metody.
Jaká je posloupnost metod?
- Ciselnik/* - Udělejte si přehled o dostupných číselnících a hodnotách, které vracejí a významu vstupího parametru VypsatNazvy (viz níže).
- Katalog/ZajezdList - seznam zájezdů pro přípravu struktury stránky, generování URL atd. Není to ale hledání.
- Katalog/HotTipList - jednoduché načtení hottipů, ze kterého lze pokračovat na detail zájezdu nebo termínu.
- Katalog/HledaniZajezdu - hledání zájezdů podle kritérií, nebo zobrazení seznamu zájezdů z katalogu.
- Katalog/ZajezdDetail - zobrazení detailu zájezdu a výběru termínů.
- Katalog/TerminDetail - zobrazení detailu zájezdu a výběru termínů.
- Katalog/KalkulaceParametry - příprava parametrů pro zobrazení kalkulace.
- Katalog/Kalkulace - zobrazení kalkulace pro vybrané parametry.
- Objednavka/Objednat - uložení nové objednávky do systému. Vkládat lze několik různých druhů objednávek (s rezervcí, bez rezervace, mimo katalog, cizí produkt atd.)
- Objednavka/ObjednavkaDetail - získání aktuálních informací o objednávce.
- Objednavka/CestujiciUlozit - dodatečné uložení informací o cestujících osobách
- Objednavka/ObjednavkaDokoncit - dokončení rozpracované objednávky a potvrzení času platnosti rezervace.
- Objednavka/FakturyVystavit - vystavení faktury u objednávek s rezervací
- Objednavka/SmlouvaPridat - vygenerování smlouvy u objednávek s rezervací
Jak funguje parametr VypsatNazvy?
Každá metoda kromě číselníků obsahuje kontext a výběrem jazyka a parametrem VypsatNazvy typu boolean:1) VypsatNazvy = True
V tomto režimu bude výstup pro každý identifikátor z číselníku doplněn textová název. Např. při výskytu položky TypDoprava.ID="40" bude výstup doplněn o TypDoprava.Nazev="letecká". Podobně pro všechny ostatní číselníky.
Použití této varianty je jednodušší na implementaci, ale je přenášen větší objem dat. Režim je vhodný pro menší weby.
2) VypsatNazvy = False
V tomto reřimu jsou ve výstupních datech uvedena pouze ID z číselníků, bez výpisu textové verze.
Použití této varianty je složitější na implementaci, protože vyžaduje implementaci cache na hodnoty číselníků, ale je přenášen menší objem dat a komunikace mezi aplikacemi je tak efektivnější. Režim je vhodné využít pro weby s větší návštěvností, tzn. hlavní web CK.
Co znamená 1:1, 1:N a skupina ve vztahu zájezdu a hotelů?
Jeden zájezd může obecně obsahovat program zahrnující pobyt ve více hotelech (pobytovo-poznávací zájezdy, plavby, exotické zájezdy s pobytem na více ostrovech a pod.). Tyto jsou v dokumentaci označovány jako 1:N. Většina zájezdů ale obsahuje právě jeden hotel (obyčejné pobytové zájezdy) a ty jsou označovány jako 1:1.Textový popis, obrázky a seznam vybavení může být uveden jak u samotného zájezdu (např. program společný pro celý poznávací zájezd), tak u některého z hotelů, nebo u všech hotelů samostatně. V případě zájezdů 1:1 je popis uveden zpravidla u hotelu a popis zájezdu zůstává prázdný.
U zájezdů 1:N mohou být hotely zájezdu rozděleny do skupin. Např. Thajsko a zájezd Bangkok - Pattaya - Ko Samet: klient v tomto případě tráví jednu noc v Bangkoku, poté několik dní v Pattaya a několik dní v Ko Samet, dle popisu zájezdu. Na každém z těchto ostrovů je ale na výběr z několika hotelů, klient si musí vybrat ve kterých hotelech chce být ubytován, ale nemůže si vybrat libovolnou kombinaci.
Hotely zájezdu mohou (ale nemusí - u triviálních zájezdů, kde klient navštíví vždy všechny přítomné hotely a nemusí si tedy vybírat) být rozděleny do těchto skupin a vybraná kombinace musí obsahovat vždy pouze jedinou skupinu, čili nelze současně vybrat hotel ze skupiny 1 a na jiném ostrově hotel ze skupiny 3. Speciální význam má nevyplněná hodnota skupiny - takový hotel lze kombinovat s libovolnou skupinou.
V případě, že zájezd obsahuje více skupin si klient musí vybrat kombinaci hotelů. Při výběru navíc musí z dané skupiny obsadit všechna dostupná pořadí. (Např. u Bangkok - Pattaya - Ko Samet musí vybrat jeden z hotelů s pořadím 1 (Bangkok), jeden hotel s pořadím 2 (Pattaya) a jeden hotel s pořadím 3 (Ko Samet). Žádné dostupné pořadí nesmí zůstat neobsazeno.
Zvolený seznam se pak používá jako vstupní parametr pro metodu Katalog/KalkulaceParametry, která poskytuje dodatečné informace potřebné pro zjištění všech vstupních parametrů metody Katalog/Kalkulace.