내 원래 문제 나는 평안한 API에 버전 관리를 할 수있는 가장 좋은 방법이 무엇인지 찾고있다. 많은 사람들이 이것에 대해 말하지 않고, 좋은 대답을하지 못하거나이 순간에 정확하게 해결책을 찾지 못했습니다.ASP.NET MVC 3 리 라우트 다른 컨트롤러와 액션 & 평안한 API 버전
(1) 처음에는 각 버전 http://domain.com/API/ {version}에 Tag
또는 Branch
을 사용하려고합니다. 따라서 새로운 API가 출시되면 해당 URL에 Tag
이 내보내지고 게시되지만 하나의 웹 응용 프로그램에서 서로 다른 소스 개정판을 혼합하는 것처럼 보입니다.
(2) 나는이 방법으로, 하나의 버전에 해당하는 하나의 컨트롤러를 사용하여 생각하고 그런 : (그냥이 질문에 같은 Versioning of REST API Built With ASP.NET MVC 3 - Best Practices)
http://domain.com/API/1.0/{AnAction} => will go to APIV1Controller.{AnAction}
http://domain.com/API/2.0/{AnAction} => will go to APIV2Controller.{AnAction}
그러나 그것은을 작성해야 각 버전에 대한 경로.
(3) 제 3의 방법은 URL이 아니라 POST 매개 변수 인 PayPal API에서 아이디어를 얻습니다. URL은 http://domain.com/API/
으로 고정되었지만 사용자는 또는 "2.0"
이되도록 Version
매개 변수를 지정해야합니다.
해결 방법 : (2)는 괜찮습니다. 현재는이 방법을 사용하고 있지만 (2)와 (3)을 혼합하여 APIController에 하나의 색인 작업 만 있습니다. 이 Version
매개 변수를 요청하고 해당 컨트롤러에 요청을 전송하고 APIV1Controller. {AnAction} 또는 APIV2Controller. {AnAction} 중 하나를 수행하십시오.
리디렉션없이 다른 컨트롤러와 동작을 전송, 호출 또는 호출하는 방법에 대한 인터넷 검색 및 스택 오버 플로우 이후. 좋은 대답과 좋은 습관이없는 것 같습니다. 컨트롤러의 새 인스턴스를 생성하기 만하면 누군가 .NET MVC Call method on different controller에 응답합니다. 갑자기 나는 대략 reroute
에 대한 생각을 얻었다!
질문 :
가 리디렉션 어떻게 그렇게하지 않고 다른 동작에서 다른 컨트롤러와 액션이 reroute
할 수 있습니까?
또는 특정 질문, 때 Version="2.0"
와 사용자 요청 http://domain.com/API/{AnAction}
, 어떻게 reroute
APIController.Index
에서 APIV2Controller.{AnAction}
하는 방법을 할 수 있습니까?
IoC를 사용하고 있지 않습니다.
그렇게 할 방법이없는 것 같습니까? – CallMeLaNN