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;

syntax
<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"
user-name="{string}"
password="{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)

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;

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:

syntax
<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.


Požadavek get-userPožadavek change-passwordPožadavek actionPožadavek send-requestPožadavek send-messagePožadavek confirm-messagePožadavek get-messagesPožadavek tranformPožadavek set-tempPožadavek get-tempPožadavek general-lockPožadavek encryptPožadavek decryptPožadavek max-keyPožadavek reload-sslPožadavek get-versionsPožadavek uuidPožadavek cnthashPožadavek rand