多个Nancy路线模式可用于单个动作?

war*_*ckh 4 nancy

我希望由2个或更多路由模式执行相同的操作。

例如:

//Route 1: 
Get["/{category}/{product_name}/{id}"]

// Route 2:
Get["/api/products/{id}"]
Run Code Online (Sandbox Code Playgroud)

理想情况下,第一个路由是SEO友好的并返回一个视图,第二个路由将返回JSON并用作API。

仅仅是定义2条单独的路由并调用封装在另一种方法中的通用逻辑,这仅仅是问题吗?还是有一些我不知道的南希魔术?

更新 我的最终解决方案是在一个语句中使用多个分配。

Get["/{category}/{product_name}/{id}"] = Get["/api/products/{id}"] = params => 
{
   ...
};
Run Code Online (Sandbox Code Playgroud)

Fra*_*oey 5

我知道这是可以回答的,但是我想我会为一些稍微整洁的解决方案添加一些帮助。这是我的解决方案:

public class ExampleModule : NancyModule
    {
        public ExampleModule()
        {
            Get["/somepath"] = DoSomething;
            Post["/somepath"] = DoSomething;
        }

        private dynamic DoSomething(dynamic parameters)
        {
            return null;
        }
    }
Run Code Online (Sandbox Code Playgroud)