我希望通过2个或更多路由模式执行相同的操作。
例如:
//Route 1:
Get["/{category}/{product_name}/{id}"]
// Route 2:
Get["/api/products/{id}"]
理想情况下,第一条路线是SEO友好型并返回视图,第二条路线将返回JSON并用作API。
仅仅是定义2个单独的路由并调用封装在另一个方法中的公共逻辑?还是有一些我不知道的南希魔法?
更新 我的最终解决方案是在一个语句中使用多个赋值。
Get["/{category}/{product_name}/{id}"] = Get["/api/products/{id}"] = params =>
{
...
};
答案 0 :(得分:5)
我知道这已经得到了解答,但我想我会把我的tuppence添加到一个稍微整洁的解决方案中。这是我的解决方案:
public class ExampleModule : NancyModule
{
public ExampleModule()
{
Get["/somepath"] = DoSomething;
Post["/somepath"] = DoSomething;
}
private dynamic DoSomething(dynamic parameters)
{
return null;
}
}
答案 1 :(得分:2)
这是调用共同逻辑的问题。没有魔法我害怕。 请注意,Nancy的内容协商可以根据请求返回视图或json。