FastAPI Dependencies 라우팅 - 68

2023. 1. 17. 23:15·Develop/FastAPI
728x90
SMALL
Authentication Routing /  Todo Routing /  Prefix Routing /  External Routing /  Dependencies Routing

 

1. 라우팅 역할

  • 애플리케이션의 구조를 위한 유연한 도구
  • 확장 가능 한 아키텍처를 지원
  • 파일 구조화를 도움

 

2. 구성할 프로젝트 구조

TodoApp
main.py

database.py

models.py
TodoApp/routers TodoApp/company
auth.py todos.py companyapis.py dependencies.py

Dependencies 라우팅

company 디렉터리 하위에 dependencies.py 생성

현재 디렉토리 구조

 

dependencies.py 파일 수정

from fastapi import Header, HTTPException



async def get_token_header(internal_token: str = Header(...)):
    if internal_token != "allowed":
        raise HTTPException(status_code=400, detail="Internal-Token header invalid")
        
#internal_token 값으로 allowed가 아니라면 에러 발생

 

main.py 파일 수정

from fastapi import FastAPI, Depends
import models
from database import engine
from routers import auth, todos
#dependencies 삽입
from company import companyapis, dependencies

app = FastAPI()

models.Base.metadata.create_all(bind=engine)

app.include_router(auth.router)
app.include_router(todos.router)
#라우터 옵션 추가
app.include_router(
    companyapis.router,
    prefix="/companyapis",
    tags=["companyapis"],
    #종속성 추가 사용자 지정 Token 헤더를 읽는다.
    dependencies=[Depends(dependencies.get_token_header)],
    responses={418: {"description": "Internal Use Only"}}
                   )

 

3. Swagger 확인

companyapis의 API를 호출할 때 지정 해준 토큰 외에 값을 넣게 되면 에러가 난다.(dependencies 역할)

 

token == "test"를 넣게 되면 에러

 

token == "allowed"를 넣게 되면 성공

728x90
SMALL
저작자표시 비영리 변경금지 (새창열림)

'Develop > FastAPI' 카테고리의 다른 글

FastAPI What is Alembic(upgrade/ downgrade 실습) - 70  (2) 2023.01.22
FastAPI Routing 실습 - 69  (0) 2023.01.18
FastAPI External 라우팅 - 67  (0) 2023.01.17
FastAPI Prefix 라우팅 - 66  (0) 2023.01.17
FastAPI Todo 라우팅(main.py 수정) 확장성 확인 - 65  (0) 2023.01.17
'Develop/FastAPI' 카테고리의 다른 글
  • FastAPI What is Alembic(upgrade/ downgrade 실습) - 70
  • FastAPI Routing 실습 - 69
  • FastAPI External 라우팅 - 67
  • FastAPI Prefix 라우팅 - 66
동석해요
동석해요
공부하고 싶은게 많은, 사소한 IT 지식들 공유
개발로 자기계발공부하고 싶은게 많은, 사소한 IT 지식들 공유
    250x250
  • 동석해요
    개발로 자기계발
    동석해요
  • 전체
    오늘
    어제
    • 분류 전체보기 (226)
      • Develop (126)
        • 기초지식 (12)
        • FastAPI (102)
        • Django (11)
      • Database & Data (62)
        • 기초지식 (16)
        • MySQL (29)
        • PostgreSQL (8)
        • 데이터 분석 (9)
      • 인공지능 (11)
        • PyTorch (9)
      • Cloud (8)
        • AWS (4)
        • GCP (2)
      • 버그처리 (14)
      • 회고 & 일상 (5)
  • 인기 글

  • 최근 글

  • 최근 댓글

  • hELLO· Designed By정상우.v4.10.3
동석해요
FastAPI Dependencies 라우팅 - 68

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.