2016-05-08 10 views
4

Есть ли уникальный идентификатор запроса в Dancer?Уникальный запрос танцора ID

Апач mod_unique_id: http://httpd.apache.org/docs/current/mod/mod_unique_id.html

PSGI/Plack имеет модуль промежуточного программного обеспечения: http://search.cpan.org/~bayashi/Plack-Middleware-RequestId-0.02/lib/Plack/Middleware/RequestId.pm

Но есть что-то родное в Dancer я пропустил?

+1

Вы можете определенно добавить промежуточное программное обеспечение перед своей программой Dancer. Где проблема с этим? – simbabque

+0

Это не пакет Debian и зависит от приложения Dancer для работы через Plack. – Sebastian

+1

Объект [Dancer :: Request имеет свойство _id_] (https://metacpan.org/source/BIGPRESH/Dancer-1.3202/lib/Dancer/Request.pm#L130), который, по-видимому, является номером автоинкремента. Я попробую, как его использовать. – simbabque

ответ

1

Когда я нужен уникальный идентификатор для использования с Mojolicious, я использовал Data::UUID, который генерирует длинный (128bit) номер в соответствии с RFC 4122

Я не могу быть более конкретным без четкой идеи вашего использования случай, но это работает хорошо:

#!/usr/bin/env perl 

use strict; 
use warnings; 

use Data::UUID; 

my $gen = Data::UUID -> new(); 

my $binary_uuid = $gen -> create ; 

print $gen -> to_string ($binary_uuid),"\n"; 
print $gen -> to_hexstring ($binary_uuid),"\n"; 
print $gen -> to_b64string ($binary_uuid),"\n"; 

У вас есть выбор выходных форматов. Вы можете, если это полезно для вашего приложения, создать напрямую, например:

my $gen = Data::UUID -> new(); 
my $uuid = $gen -> create_str ; 
print $uuid, "\n"; 
#reformat output 
print $gen -> to_hexstring ($uuid),"\n";