Dokumentace API – Našeptávaní adres
Toto je popis starší verze služby pro našeptávání adres. Doporučujeme používat aktuální verzi.
Webová služba pro našeptávání adres je k dispozici na adrese
- https://secure.smartform.cz/smartform-ws/oracle/v5
Vlastnosti dotazu
Dotazy musí být posílány metodou POST. Data jsou posílána ve formátu JSON s kódováním UTF-8.
Hlavička http requestu musí obsahovat následující položky:
název | hodnota |
---|---|
Content-type | application/json |
Accept | application/json |
Struktura dotazu a odpovědi
Následuje referenční struktura dotazu a odpovědi. Objekty jsou zachyceny ve formě pseudokódu pro lepší pochopení struktury.
Dotaz
class OracleRequest { // Identifikace dotazu int id; // Obsah formulářových políček // Očekává se jedna z těchto kombinací: // * STREET, NUMBER, CITY, ZIP, COUNTRY // * STREET_AND_NUMBER, CITY, ZIP, COUNTRY // * WHOLE_ADDRESS, COUNTRY // * MUNICIPALITY_AND_DISTRICT, COUNTRY Map<InputOracleFieldType, string> values; // Které políčko se právě edituje InputOracleFieldType fieldType; // Kolik maximálně našeptaváných možností se má vrátit int limit; // Konfigurace – umožňuje měnit standardní chování web-service, můžete ponechat prázdné Map<OracleConfigurationField, string> configuration; // Heslo - pokud jej nemáte, získáte ho v administraci na https://admin.smartform.cz string password; }
Odpověď
class OracleResponse { // Výsledek dotazu ResultCode resultCode; // Detailní popis chyby (pokud je resultCode == FAIL) string errorMessage; // Identifikace dotazu - pro kontrolu (mělo by být shodné s číslem v dotazu) int id; // Seznam návrhů našeptávače List<AddressSuggestion> suggestions; }
Další objekty
// Typy políček ve formuláři enum InputOracleFieldType { // číslo domu NUMBER, // ulice a číslo domu STREET_AND_NUMBER, // ulice STREET, // obec (může obsahovat i část obce, poštu) CITY, // obec a okres MUNICIPALITY_AND_DISTRICT, // PSČ ZIP, // celá adresa WHOLE_ADDRESS, // Stát – může nabývat hodnot "CZ" a "SK" COUNTRY }
// Seznam konfiguračních políček – tato políčka mění standardní chování našeptávácí web-service. // Žádné z těchto políček není v konfiguraci povinné. enum OracleConfigurationField { // Když do konfigurace requestu přidáte položku "SK_BRATISLAVA_KOSICE_UNDIVIDED":"true", // budou při našeptávání obcí pomocí vstupního políčka MUNICIPALITY_AND_DISTRICT // slovenská města Bratislava a Košice považovány za jednu obec // (v registru slovenských adres totiž obce Bratislava a Košice nejsou, // jsou tam jen jejich části, např. „Košice – Džungla“). SK_BRATISLAVA_KOSICE_UNDIVIDED }
// Jedna položka nabídky pro našeptávač. class AddressSuggestion { // Pro které políčko je návrh určen OutputOracleFieldType fieldType; // Hodnoty určené formulářovým políčkům. Map<OutputOracleFieldType, string> values; // Doplňující příznaky k našeptávané položce // Seznam příznaků a jejich defaultních hodnot najdete v AddressSuggestionFlag // Příznak může chybět, pokud nemá v daném kontextu smysl nebo pokud nabývá defaultní hodnoty Map<AddressSuggestionFlag, string> flags; }
// Typy políček v AddressSuggestion // Obsahuje všechna políčka z InputOracleFieldType plus některá navíc enum OutputOracleFieldType { // číslo domu NUMBER, // ulice a číslo domu STREET_AND_NUMBER, // ulice STREET, // obec (může obsahovat i část obce, poštu) CITY, // obec a okres MUNICIPALITY_AND_DISTRICT, // obec MUNICIPALITY, // okres DISTRICT, // PSČ ZIP, // celá adresa WHOLE_ADDRESS, }
// Seznam možných příznaků v AddressSuggestion enum AddressSuggestionFlag { // zdali návrh obsahuje celou adresu // hodnoty: "false" (defaultní), "true" WHOLE_ADDRESS, // při našeptávání obcí značí, že u dané obce není třeba uvádět okres // hodnoty: "false" (defaultní), "true" UNIQUE_MUNICIPALITY, }
/** Výsledek dotazu. */ enum ResultCode { /** Volání service proběhlo v pořádku. */ OK, /** Při volání service došlo k chybě. */ FAIL }
Tabulka typů v pseudokódu
typ v pseudokódu | typ v JSON |
---|---|
třída (class) | vnořený objekt |
výčet (enum) | řetězec se jménem vybrané položky |
List | pole |
Map | objekt – klíče a hodnoty se stanou položkami objektu |
string | řetězec |
int | číslo |
double | číslo |
boolean | boolean |
char (jeden znak) | řetězec |