Dokumentace API – Našeptávaní adres (verze 1)

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 adresách:

  • https://secure.smartform.cz/smartform-ws/v1/oracle

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
    Map<OracleFieldType, string> values;
    
    // Které políčko se právě edituje
    OracleFieldType fieldType;
    
    // Kolik maximálně našeptaváných možností se má vrátit
    int limit;
    
    // Heslo - identifikace uživatele
    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 OracleFieldType
{
    // číslo domu 
    NUMBER,
    // ulice a číslo domu
    STREET_AND_NUMBER,
    // ulice
    STREET,
    // obec 
    CITY,
    // PSČ
    ZIP
}
// Jedna položka nabídky pro našeptávač.
class AddressSuggestion
{
    // Pro které políčko je návrh určen
    OracleFieldType fieldType;
    
    // Příznak, zda návrh obsahuje celou adresu
    boolean wholeAddress;
    
    // Hodnoty určené formulářovým políčkům.
    Map<OracleFieldType, String> values;
}
/** 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