2014-08-28 54 views
0

我是Mojolicious的新手,創建REST服務。我正在嘗試編寫一個REST服務來查詢資產數據庫。REST服務器:Mojolicious截斷隱藏值

一個例子網址:

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

我該如何讓我的服務接受一個包含dot的字符串呢?如果這是不可能的,我可以使用GET請求並傳遞FQDN(我可以用來查詢2個獨立數據庫的唯一方法)並返回結果的方式是什麼?

回答

1

我認爲你必須改變佔位符的類型從通用寬鬆

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

又見Mojolicious Guide Routing

+0

您先生。是一位紳士和一位學者。 – Mose 2014-08-28 15:23:49

+0

我正在挖掘Mojo並且正在尋找控制器模塊,因爲這是隱藏模塊似乎存在的地方。謝謝(你的)信息。 – Mose 2014-08-28 15:25:05