Skip to main content

Požadavek send-request

Požadavek jinému serveru (proxy).

Slouží k odeslání (především http) požadavků jinému serveru.

Mezi tagy jsou uzavřena data do postové části a to ve formátu specifikovaného atributem post;

Jde o uzel obsahující text TYP HODNOTY: string;

<request>
<send-request
url="{string}"
post="hex|xml|xml-replace|json|plain|base64"
content-type="{string}"
preserved-headers="{boolean}"
preserved-cookies="{boolean}"
output="hex|xml|json|csv|txt|base64|raw|auto"
authentication="server|oauth|client|bearer"
user-name="{string}"
password="{string}"
bearer="{string}"
timeout="{number}"
http-header="{string}"
size-limit="{number}"
profile="{string}"
scope="{string}"
accepted-state="{number}"
http-method="{string}"
id="{number}"
url-translate="true|false|min|plus|fn|alnum|all|uživatelsky definováno"
debug="{boolean}"
source="[hostname]|[ip]|http-method|id"
>
<{element} ... > ... </{element}>?
|
<{fxd-doc-type} dkey="{key}">...</{fxd-doc-type}> *
|
{string}
</send-request>
</request>

Atributy

  • url - cílové URL požadavku(typ: string) TYP HODNOTY: string;

  • post - Určuje způsob kódování vstupních dat DEFAULT plain(typ: string) TYP HODNOTY: string; Možnosti obsahu: » hex ~ vstup je kódován hexadecimálně xml » xml ~ vstupem je klasické platné xml » xml-replace ~ vstupem je xml, kde proběhne nahrazení uzavíracích tagů » json ~ vstupem je flexideo xml formát, který bude převeden do JSON » plain ~ vstup není nijak kódován, data jsou odeslána tak, jak jsou » base64 ~ vstup je kódován v base64 formátu

  • content-type - content-type předávaný cílovému serveru, výchozí hodnotou je text/xml;(typ: string) TYP HODNOTY: string;

  • preserved-headers - učuje, zda přenést hlavičky z klienta na server třetí strany, vhodné pro případy, kdy je vracený obsah závislý na druhu klienta - mobilnimu zařízení je vrácen jiný obsah než počítači, pro IE je jiný kód než pro FF apod.Bezpečnostní hlavičky se nepřenášejí. DEFAULT false;(typ: boolean) TYP HODNOTY: boolean;

  • preserved-cookies - určuje, zda přenášet cookies z klienta na server třetí strany a opačně; nastavení nemá velký význam - většina poskytovatelů doplňuje ke cookie atribut domain nebo path, což vede k tomu, že ji klient stejně nepřijme;(typ: boolean) TYP HODNOTY: boolean;

  • output - určuje způsob kódování výstupních dat DEFAULT auto(typ: string) TYP HODNOTY: string; Možnosti obsahu: » hex ~ výstup je kódován hexadecimálně » xml ~ výstup je chápán jako XML » json ~ výstup je chápan jako JSON a převeden do flexideo JSON XML formátu » csv ~ výstup je chápan jako CSV a převeden do flexideo CSV XML formátu » txt ~ výstup je chápán jako text a převeden do platného textového XML uzlu » base64 ~ výstup je kódován do base64 » raw ~ výstup je vrácen tak, jak je - bez jakéhokoli kódování » auto ~ výstupní content-type rozhodne o způsobu kódování

  • authentication - Určuje způsob autentifikace požadavku DEFAULT neuvedeno - bez autentifikace(typ: string) TYP HODNOTY: string; Možnosti obsahu: » server ~ autentifikační údaje jsou získány ze serverového profilu » oauth ~ autentifikační údaje jsou získány ze serverového OAUTH2 profilu » client ~ autentifikační údaje jsou získány z atributů požadavku (user-name a password) » bearer ~ autentifikační údaj je získán z atributu požadavku (@bearer)

  • user-name - uživatelské jméno pro autentifikaci typu client;(typ: string) TYP HODNOTY: string;

  • password - heslo pro autentifikaci typu client;(typ: string) TYP HODNOTY: string;

  • bearer - Předsdílený klíč pro autentifikaci bearer;(typ: string) TYP HODNOTY: string;

  • timeout - maximální doba trvání požadavku v [ms] DEFAULT 30000(typ: number) TYP HODNOTY: number;

  • http-header - umožňuje vložit libovolnou http hlavičku. Obsah jakéhokoli atributu začínajícího textem http-header je vložen jako samostatná nová http hlavička;(typ: string) TYP HODNOTY: string;

  • size-limit - maximimální velikost odpovědi v [bytech] DEFAULT 100MB(typ: number) TYP HODNOTY: number;

  • profile - serverový ověřovací profil pro autentifikační volbu oauth, nebo server.(typ: string) TYP HODNOTY: string;

  • scope - požadovaný scope u oauth ověřování.

  • accepted-state - umožňuje nastavit, při jaké hodnotě http state odpovědi bude požadavek považován za úspěšný DEFAULT úspěšný vždy, je-li obdržena (jakákoli) odpověď.(typ: number) TYP HODNOTY: number;

  • http-method - http metoda použitá ke komunikaci, lze použít libovolný řetězec DEFAULT GET - neexistuje-li POST část, jinak POST(typ: string) TYP HODNOTY: string;

  • id - volitelné id požadavku určené pro jeho identifikaci(typ: number) TYP HODNOTY: number;

  • url-translate - určuje způsob, jakým bude interpretováno (kódovano) URL za otazníkem(typ: string) TYP HODNOTY: string; Možnosti obsahu: » true ~ budou kódovány jen nezbytně nutné znaky. Následující znaky kódovány nebudou: ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-.~:/?#[]@!$&'()*+,;= » false ~ neuvedení atributu - žádné kódování prováděno nebude, je plně v kompetenci uživatele » min ~ budou kódovány jen nezbytně nutné znaky. Následující znaky kódovány nebudou: ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-.:/?#[]@!$&'()+,;= » plus ~ budou kódovány jen nezbytně nutné znaky a znak + (nahrazující mezeru). Následující znaky kódovány nebudou: ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-._~:/?#[]@!$&'(),;= » fn ~ bude kódována většina méně obvyklých znaků, vyjma těch, které interně používá flexideo. Následující znaky kódovány nebudou: ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-._ » alnum ~ budou kódovány všechny NEalfanumerické znaky. Následující znaky kódovány nebudou: ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789 » all ~ budou kódovány všechny znaky (včetně alfanumurických) » uživatelsky definováno ~ je možné definovat znaky, které nebudou kódovány. Soupis je case sensitive.

  • debug - umožňuje zapnout speciální režim pro debugování požadavků, v tomto režimu je generována jiná odpověď(typ: boolean) TYP HODNOTY: boolean;

  • source - umožňuje nastavit zdrojovou IP adresu, ze které požadavek odejde.(typ: number) TYP HODNOTY: number; Možnosti obsahu: » [hostname] ~ požadavek odejde z IP adresy odpovídající hostname, na které požadavek send-request mířil » [ip] ~ požadavek odejde z IP adresy, na kterou byl send-request požadavek zaslán » http-method ~ http metoda použitá ke komunikaci, lze použít libovolný řetězec DEFAULT GET - neexistuje-li POST část, jinak POST » id ~ volitelné id požadavku určené pro jeho identifikaci

Potomci

Požadavek send-request umožňuje uvést jeden volitelný element a nebo umožňuje vložit jeden uzel nebo více uzlů flexideo dokument struktury. Uzel může obsahovat prostý text, pokud neobsahuje XML uzly.

Poznámka k request

Atribut url-translate:

V části URL za otazníkem mají některé znaky zvláštní význam a proto s nimi můsí být zvláštně zacházeno. Naříklad znak & slouží k oddělení jednotlivých parametrů a pokud se má v některém z parametrů objevit jako součást hodnoty musí být zakódován (escape). Naopak pokud má sloužit jako oddělovač parametrů, zakódován být nesmí. K volbě způsobu kódování slouží tento atribut.

Přenos URL probíhá tak, řetězec v požadavku, který je musí být kódován tak, aby byl platným XML je dekódován a následně buď podroben url-transate, či nikoli. Není-li url-translate prováďěn, je plně na implementátorovi, aby zajistil znaky v řetězci byly správně kódovány, tedy nahrazeny příslušnými escape sekvencemi. Je-li url-translate prováďěn, pak jsou všechny znaky, které nejsou přípustné nahrazeny odpovídající sekvencí. Množiny níže definují přípustné znaky, tedy znaky, které nebudou nahrazeny. Jelikož escape sekvence v URL začínají znakem & je v případě, kdy je mícháno použití escape sekvencí v URL s atributem url-transate zajistit, aby nedoslo k translaci escape sekvence. Lapidárně řečeno, pokud je v URL použita escape sekvence, je nutné vyloučit znak & z kódovaných znaků.

Odpověď

Debug výstup kromě běžné odpovědi obsahuje také požadavek zasílaný protistraně a její odpověď. Vzhledem ke způsobu vrácení tohoto ladícího výstupu může v některých případech, v závislosti na atributu output, být vráceno neplatné XML. Debug výstup se zobrazí při výběru hodnoty true. U výběru hodnoty false nikoliv.

Jde o uzel obsahující text TYP HODNOTY: string;

Struktura odpovědi na požadavek send-request vrácená v obálce response:

<response>
<element
id="{number}"
http-state="{string}"
coded="hex|xml|json|csv|txt|base64|raw|auto"
content-type="{string}"
type="ok|error"
detail="{string}"
>
<{element} ... > ... </{element}>?
|
{string}
</element>
</response>

Atributy

  • id - Jedinečný celočíselný identifikátor položky.(typ: number)

  • http-state - Stavový kód (http-state) vrácený serverem.(typ: string) TYP HODNOTY: string;

  • coded - Způsob kódování odpovídající atributu output(typ: string) TYP HODNOTY: string; Možnosti obsahu: » hex ~ výstup je kódován hexadecimálně » xml ~ výstup je chápán jako XML » json ~ výstup je chápan jako JSON a převeden do flexideo JSON XML formátu » csv ~ výstup je chápan jako CSV a převeden do flexideo CSV XML formátu » txt ~ výstup je chápán jako text a převeden do platného textového XML uzlu » base64 ~ výstup je kódován do base64 » raw ~ výstup je vrácen tak, jak je - bez jakéhokoli kódování » auto ~ výstupní content-type rozhodne o způsobu kódování

  • content-type - content-type vrácený serverem(typ: string) TYP HODNOTY: string;

  • type - Obsahuje hodnoty ok nebo error (možnosti obsahu: ok | error)

  • detail - Upřesnění - Bližší popis vzniklé chyby. Je k dispozici při odpovědi typu 'error'.(typ: string)

Potomci

Odpověď element umožňuje uvést jeden volitelný element Uzel může obsahovat prostý text, pokud neobsahuje XML uzly.

Výraz pro identifikaci chyb v odpovědi serveru: send-request[@type='error'] (odkaz na popis detailu: @detail).

Poznámka k response

Vstupní atribut id je v odpovědi přítomen, byl-li přítomen v požadavku. Atributy http-state, coded, content-type jsou přítomny, byl-li požadavek kompletně zpracován.