Požadavek uuid
Účel a dopady
Vygeneruje jeden nebo více univerzálních unikátních identifikátorů (UUID) podle RFC4122, ve verzích 0, 1, 3, 4 nebo 5. Požadavek nemá žádné vedlejší účinky – nic nezapisuje do databáze ani do session.
Dostupnost, kontext, oprávnění apod.
- Dostupné každému přihlášenému uživateli bez zvláštního oprávnění.
- Zpracování
uuid(na rozdíl od požadavků jakosql-query/action) není podmíněno stavem obálkové transakce – v dispatcheru pro něj taková podmínka chybí, požadavek se provede vždy.
XML požadavek (syntax + popis)
<request>
<uuid
version="{number}"
count="{number}"
string="{string}"
/>
</request>
Parametry a pravidla (atributy, potomci)
version- Verze UUID - Určuje požadovanou verzi generátoru. (typ: number; nepovinný; výchozí:4; povolené hodnoty:0,1,3,4,5– hodnota2, jakákoli hodnota vyšší než5, nebo hodnota, kterou se nepodaří převést na číslo, vede k chybě, viz „Chyby a reakce“)count- Počet generovaných UUID - Kolikrát se má identifikátor vygenerovat. (typ: number; nepovinný; výchozí:1; hodnota0nebo hodnota, kterou se nepodaří převést na číslo, se chová jako1)string- Vstupní řetězec pro hash - Zdrojový text, z jehož hashe se odvozuje UUID verzí3a5. (typ: string; povinný jen proversion="3"aversion="5", jinak se nepoužije)
Požadavek nemá žádné potomky.
Závislosti
- Je-li
version3nebo5, je atributstringpovinný; jeho neuvedení vede k chybě (viz „Chyby a reakce“). - U verzí
3a5nemácountsmysl v tom, že vstup je deterministický – při stejnémstringgeneruje generátor pořád stejné UUID, takžecountvyšší než1jen zopakuje tutéž hodnotu vícekrát. Server to nijak nekontroluje ani neomezuje.
Význam jednotlivých verzí
0– vždy vrátí nil UUID (00000000-0000-0000-0000-000000000000).1– odvozeno z MAC adresy stroje a aktuálního času (UuidCreateSequential); bez náhodné složky.2– v této verzi serveru neimplementováno; použití vede k chybě stejně jako neplatná verze.3– hash zadanéhostringpomocí MD5.4(výchozí) – čistě náhodně vygenerované (randomize).5– hash zadanéhostringpomocí SHA-1.
Příklady požadavku
(Zatím bez ověřeného příkladu.)
Zpracování a vedlejší účinky
- U verzí
1,3,4a5server po vygenerování surových bajtů nastaví bity varianty/verze podle RFC4122; u verze0k této úpravě nedochází (výsledek zůstává čistě nulový). - Výsledný text má vždy standardní tvar s pomlčkami
xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx(32 hexadecimálních znaků + 4 pomlčky).
XML odpověď (syntax + popis)
<response>
<uuid
type="ok"
>
<value
uuid="{string}"
/> *
</uuid>
</response>
Uzel value je vždy sebeuzavírající a obsahuje jediný atribut uuid s vygenerovanou hodnotou. Počet uzlů value odpovídá count.
Příklady odpovědi
(Zatím bez ověřeného příkladu.)
Chyby a reakce
<uuid type="error" detail="Nepodporovana verze UUID"/>–versionje2, je vyšší než5, nebo se nepodařilo převést na číslo.<uuid type="error" detail="Tato verze UUID vy6aduje atribut string"/>–versionje3nebo5a chybí atributstring. Textvy6aduje(místo „vyžaduje“) je doslovná chyba serveru, ne chyba přepisu v této dokumentaci.- Obě chybové větve jsou sebeuzavírající, bez vnořeného uzlu
error. - Výraz pro identifikaci chyb v odpovědi serveru:
uuid[@type='error'].
Související požadavky
- rand – další generátor hodnot ve stejné skupině požadavků.