Fast API - dependencies

2025. 9. 3. 15:51Programming Language/Python

반응형

dependencies는 Fast API의 @app.get()과 같은 라우트 데코레이터에 포함된 기능으로 특정 경로에 대해 모든 요청에 대해 항상 실행되어야 하는 의존성을 정의하는데 사용한다.

이 의미는 간단하게 해당 API에 접근하기전에 dependencies의 의존성들에 의해서 검증하는 것으로 자바의 interceptor의 역할을 한다고 보면 된다.

 

1. 라우터 메서드의 dependencies

dependencies는 라우트 데코레이터에 작성한다.

그리고 그 값으로 리스트를 넣어주고

이 리스트 내부에 Depends(함수)를 리스트로 넣어서 해당 메서드로 들어오기 이전에 요청이 들어왔을때 해당 함수들에 들어가 문제가 있는 경우 Exception으로 raise해준다.

 

이제 그 의존성 주입을 할 함수들을 선언해보자.

우선 선언하고자 하는 함수들은 로그인을 했는지 여부를 쿠키에서 가져와서 파악하는 함수와 접근할 권한이 있는지를 쿠키에서 찾아오는 함수를 만들어주자.

 

먼저 로그인 여부를 파악하는 함수를 만들어주자.

그리고 이걸 라우팅되는 메서드의 dependencies에 Depends(login_interceptor)로 넣어주자.

이러면 

이렇게 쿠키가 Fasle로 존재할 경우

이렇게 라우터 메서드로 접근을 거부한다.

 

권한 관련된 함수도 한번 만들어보고

이 또한 dependencies에 넣어주고 

 

쿠키에 이 값을 넣어주고

요청을 보내보면

이렇게 권한에 대해서도 막아준다.

2. 전역 dependencies

이렇게 선언했던 dependencies를 전역으로 선언하는 것도 가능하다

이는 모든 라우터 메서드에 해당하는 부분으로 모든 공통된 제한을 줄  때 사용할 수 있다.

전역 dependencies는 FastAPI를 선언하는 부분에 작성하며

이렇게 선언하면 된다

 

동일한 함수를 사용했기에 동일하게 테스트 해보면

기존 메서드에는 dependencies가 없기에 그냥 받아져야하지만

이렇게 막아주는 것을 볼 수 있다.

 

반응형

'Programming Language > Python' 카테고리의 다른 글

FastAPI - 의존성 주입  (0) 2025.09.03
Fast API - 라우팅 데코레이터의 속성  (1) 2025.09.02
FastAPI - Exception  (0) 2025.09.02
FastAPI - Form Data 받기  (1) 2025.09.01
FastAPI - 응답모델  (1) 2025.09.01