2014-02-14 2 views
4

두 개 이상의 경로 패턴으로 동일한 작업을 수행하고 싶습니다. 예를 들어단일 작업에 여러 Nancy 경로 패턴이 있습니까?

:

//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

저는 제가 구현 한 솔루션을 좋아합니다. 당신이 제안 된 솔루션을 내려 놓을 수 있도록 투표 할 수 있습니다. – Bronumski

답변

1

공통 논리를 호출하는 문제입니다. 나는 두려워하지 않는다. 낸시의 콘텐츠 협상은 요청을 기반으로보기 또는 json을 반환 할 수 있습니다.

3

나는 이것이 답을 알고있다. 그러나 나는 약간 깔끔한 해결책을 위해 나의 tuppence를 더할 것이라고 생각했다. 이것은 내 해결책입니다.

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

     private dynamic DoSomething(dynamic parameters) 
     { 
      return null; 
     } 
    } 
관련 문제