REST服务器:Mojolicious截断隐藏值

时间:2014-08-28 01:40:37

标签: perl rest mojolicious

我是Mojolicious并创建REST服务的新手。我正在尝试编写REST服务来查询资产数据库。

示例网址:

http://test.example.com:3000/test/asset/web01.example.local

它被路由到以下逻辑:

get '/test/asset/:node' => sub {
        my $self  = shift;
        my $node = $self->stash('node');
        my $sql = qq {
            SELECT id, name, type, location 
            FROM inventory 
            WHERE name = ?
        };
        my $cursor = $self->db->prepare($sql);
        $cursor->execute($node,$node);
        my $record = $cursor->fetchrow_hashref;
        $cursor->finish;
        $self->db_disconnect;

        say $self->stash('node');
        return $self->render(json => $record);
};

"说"声明显示.example.local被截断:


[Wed Aug 27 21:24:05 2014] [debug] GET "/test/asset/web01.example.local".
[Wed Aug 27 21:24:05 2014] [debug] Routing to a callback. 
web01
[Wed Aug 27 21:24:05 2014] [debug] 200 OK (0.004076s, 245.339/s).

如何让我的服务接受包含点的字符串呢?如果这是不可能的,那么我可以使用GET请求并传递FQDN(我唯一可以用来查询2个独立的数据库)并返回结果?

1 个答案:

答案 0 :(得分:1)

我认为您必须将占位符的类型从通用更改为放宽

get '/test/asset/*node' => sub {
   # your sub continues here ...

另请参阅Mojolicious Guide Routing