(모든) 웹 API 작업 전에 코드 실행

크리스 비 베렌스

다중 테넌트 아키텍처에 적응하려는 웹 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)

하지만 다음을 수행 할 방법이 필요합니다.

  1. 경로에서 clientId 가져 오기
  2. 이 값을 내가 가진 상태 객체에 넣으십시오.

호출이 실제로 실행되기 전의 모든 것. 나는 경로가 다시 작성 될 것이라고 생각하고 있습니다. 내 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] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

C # 콘솔 코드에서 웹 API로 '실행 후 잊어 버리기'동작을 가져 오는 방법

분류에서Dev

실패하고 이전에 시작된 작업에 대한 API 상태 코드

분류에서Dev

MSBuild에서 모든 프로젝트가 빌드 된 후 XCopy 작업 실행

분류에서Dev

작업 / 스레드에서 소규모 작업 실행

분류에서Dev

다음 작업을 실행하기 전에 x 초 동안 절전 모드

분류에서Dev

웹 작업자로드 실패에 대한 HTTP 상태 코드 가져 오기

분류에서Dev

모든 Entity Framework 추가 / 업데이트 / 제거 작업에서 메서드 실행

분류에서Dev

Cocoa API를 사용할 때 모든 코드가 런 루프에서 실행 되나요?

분류에서Dev

모든 레코드에 대해 MongoDb 업데이트 선행 0

분류에서Dev

최근 영업일에 대한 모든 레코드 (행) 찾기

분류에서Dev

SQL 에이전트 작업이 모든 단계를 실행하지 않음

분류에서Dev

모든 코드가 실행 된 후 상태 코드 200이 전송됩니까?

분류에서Dev

Asp.Net 웹 API-모든 레코드를 얻는 방법

분류에서Dev

VSTS 빌드 작업 코드에서 Powe 셸 명령 실행

분류에서Dev

코드의 모든 부분에 대해 다른 작업을 수행하는 방법은 무엇입니까?

분류에서Dev

모든 사이트에 대한 Angular 실행 jQuery 코드

분류에서Dev

쉘 스크립트의 코드는 다른 작업 전에 실행됩니다.

분류에서Dev

bash 스크립트, 배치 모드에서 mpi 작업 실행

분류에서Dev

Gulp 작업 웹 실행

분류에서Dev

REST API에서 SalesOrderAddInvoice 작업 실행

분류에서Dev

모든 젠킨스 REST API의 모든 작업 빌드에 대한 빌드 정보를 가져옵니다

분류에서Dev

Jenkins Groovy-주어진 작업에서 실행중인 모든 빌드의 매개 변수 전역 변수를 얻는 방법은 무엇입니까?

분류에서Dev

gitpod에서 실행되는 blazor (C #) 코드에서 C # 웹 API에 어떻게 연결합니까?

분류에서Dev

모든 행 쌍에 작업 적용

분류에서Dev

작업에서 Entity Framework Stored Proc 실행 코드 래핑

분류에서Dev

UserForm이 작업을 마칠 때까지 다른 모든 코드가 실행되지 않도록합니다.

분류에서Dev

모든 디렉토리에서 웹 서버 실행

분류에서Dev

모든 디렉토리에서 웹 서버 실행

분류에서Dev

작업을 수행하기 전에 모든 리소스를 실행하는 Java / Jersey

Related 관련 기사

  1. 1

    C # 콘솔 코드에서 웹 API로 '실행 후 잊어 버리기'동작을 가져 오는 방법

  2. 2

    실패하고 이전에 시작된 작업에 대한 API 상태 코드

  3. 3

    MSBuild에서 모든 프로젝트가 빌드 된 후 XCopy 작업 실행

  4. 4

    작업 / 스레드에서 소규모 작업 실행

  5. 5

    다음 작업을 실행하기 전에 x 초 동안 절전 모드

  6. 6

    웹 작업자로드 실패에 대한 HTTP 상태 코드 가져 오기

  7. 7

    모든 Entity Framework 추가 / 업데이트 / 제거 작업에서 메서드 실행

  8. 8

    Cocoa API를 사용할 때 모든 코드가 런 루프에서 실행 되나요?

  9. 9

    모든 레코드에 대해 MongoDb 업데이트 선행 0

  10. 10

    최근 영업일에 대한 모든 레코드 (행) 찾기

  11. 11

    SQL 에이전트 작업이 모든 단계를 실행하지 않음

  12. 12

    모든 코드가 실행 된 후 상태 코드 200이 전송됩니까?

  13. 13

    Asp.Net 웹 API-모든 레코드를 얻는 방법

  14. 14

    VSTS 빌드 작업 코드에서 Powe 셸 명령 실행

  15. 15

    코드의 모든 부분에 대해 다른 작업을 수행하는 방법은 무엇입니까?

  16. 16

    모든 사이트에 대한 Angular 실행 jQuery 코드

  17. 17

    쉘 스크립트의 코드는 다른 작업 전에 실행됩니다.

  18. 18

    bash 스크립트, 배치 모드에서 mpi 작업 실행

  19. 19

    Gulp 작업 웹 실행

  20. 20

    REST API에서 SalesOrderAddInvoice 작업 실행

  21. 21

    모든 젠킨스 REST API의 모든 작업 빌드에 대한 빌드 정보를 가져옵니다

  22. 22

    Jenkins Groovy-주어진 작업에서 실행중인 모든 빌드의 매개 변수 전역 변수를 얻는 방법은 무엇입니까?

  23. 23

    gitpod에서 실행되는 blazor (C #) 코드에서 C # 웹 API에 어떻게 연결합니까?

  24. 24

    모든 행 쌍에 작업 적용

  25. 25

    작업에서 Entity Framework Stored Proc 실행 코드 래핑

  26. 26

    UserForm이 작업을 마칠 때까지 다른 모든 코드가 실행되지 않도록합니다.

  27. 27

    모든 디렉토리에서 웹 서버 실행

  28. 28

    모든 디렉토리에서 웹 서버 실행

  29. 29

    작업을 수행하기 전에 모든 리소스를 실행하는 Java / Jersey

뜨겁다태그

보관