경로매개 변수
경로 매개변수(Path Parameters)는 흔히 우리가 말하는 URL 경로에 들어가는 변수를 의미한다. 아래의 예제에서 user_id 가 경로 매개변수 이다.
from fastapi import FastAPI
app = FastAPI()
@app.get("/users/{user_id}")
def get_user(user_id: int):
return {"user_id": user_id}
여기서 http://localhost:8000/users/123 을 호출한다면 다음과 같은 결과 응답을 받을 수 있다.
$ http :8000/users/123
HTTP/1.1 200 OK
content-length: 15
content-type: application/json
date: Wed, 14 Apr 2021 13:50:43 GMT
server: uvicorn
{
"user_id": "123"
}
Swagger
경로 설정을 할 때, type hint을 지정한다면 API문서을 자동으로 제공 한다.
순서 문제
FastAPI에는 몇 안되는 단점이 존재한다. 바로 경로의 순서 문제인데 그 예시를 들기 위해 아래코드를 참조 한다.
from fastapi import FastAPI
app = FastAPI()
@app.get("/users/{user_id}")
def get_user(user_id: int):
return {"user_id": user_id}
# 추가: 현재 유저를 반환하는 앤드포인트
@app.get("/users/me")
def get_current_user():
return {"user_id": 123}
http://localhost:8000/users/me 를 호출하면 에러가 발생한다. 이는 경로 동작(Path operation)이 앤드포인트 순서에 따라 수행되기 때문이다. 제대로 동작하려면 아래와 같이 수정하여 반영한다.
from fastapi import FastAPI
app = FastAPI()
@app.get("/users/me")
def get_current_user():
return {"user_id": 123}
@app.get("/users/{user_id}")
def get_user(user_id: int):
return {"user_id": user_id}
'FrameWork > Fastapi' 카테고리의 다른 글
[Fastapi] 경로 매개 변수에서의 유효성 검증 (1) | 2023.05.12 |
---|---|
[Fastapi] 유효성 검사, 필수 매개변수, 쿼리 매개변수 목록/다중 값 처리 (0) | 2023.05.12 |
[Fastapi] 요청 본문 (0) | 2023.05.12 |
[Fastapi] 쿼리 매개변수와 열거체(Enum) 처리 (0) | 2023.05.12 |
[Fastapi] Fastapi 프로젝트 생성 및 경로 설정하기 (0) | 2023.05.12 |