다중 테넌트 아키텍처에 적응하려는 웹 API 인터페이스가 있습니다. 이전에는 클라이언트 ID라는 매개 변수를 서비스에 전달한 다음 나중에 코드에서 사용하기 위해이를 저장하는 WCF 모드가있었습니다. 즉, 클라이언트 ID가 모든 호출에 전달되는 첫 번째 매개 변수가 아니어도됩니다.
웹 API를 사용하여 다음과 같은 작업을 수행하고 싶습니다.
GetDocument(int clientId, int documentId)
GetDefault(int clientId)
GetImage(int clientId, int imageId)
그냥 :
GetDocument(int documentId)
GetDefault()
GetImage(int imageId)
하지만 다음을 수행 할 방법이 필요합니다.
호출이 실제로 실행되기 전의 모든 것. 나는 경로가 다시 작성 될 것이라고 생각하고 있습니다. 내 API가 아닌 클라이언트 ID가 있어야하는 경로에 문제가 없습니다. 따라서 호출 GetDefault
은 다음과 같습니다.
/Document/GetDefault/1
API는 다음과 같습니다.
GetDefault()
이것을 어떻게 달성 할 수 있습니까?
한 가지 접근 방식은 사용자 지정 ActionFilter입니다. 를 참조하십시오 여기에 이 개념이 WebAPI 동일 MVC에 대해 비록 :
ASP.NET MVC는 동작 메서드가 호출되기 전이나 후에 필터링 논리를 실행하기위한 동작 필터를 제공합니다. 작업 필터는 컨트롤러의 작업 메서드에 사전 작업 및 사후 작업 동작을 추가하는 선언적 수단을 제공하는 사용자 지정 특성입니다.
예를 들면 :
public class MyActionFilter : ActionFilterAttribute
{
public override void OnActionExecuting(HttpActionContext actionContext)
{
//....
}
public override void OnActionExecuted(HttpActionExecutedContext actionExecutedContext)
{
//....
}
}
그리고 그것을 사용하여 API 컨트롤러 / 액션을 장식하십시오.
[MyActionFilter]
public IEnumerable<string> Get()
{
return new string[] { "value1", "value2" };
}
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다