경로 매개변수

헨도·2023년 1월 4일
0

FastAPI

목록 보기
4/8
post-thumbnail

FastAPI

HTTPie

  • insomnia 또는 Postman 과 같이 HTTP 요청을 생성하는 도구
window : pip install httpie
MAC : brew install httpie
  • 간단한 명령어를 사용하여 localhost 8000번에 요청을 보낼 수 있다.
http localhost:8000 
OR 
http :8000

경로 매개변수(Path Parameters)

문자열 반환

import uvicorn

from fastapi import FastAPI

@app.get("/users/{user_id}")
def get_user(user_id) :
	return {"user_id" : user_id}
>>> http :8000/users/123
{
	"user_id" : "123"
}

위의 user_id를 반환할 때, 문제점이 1가지 있다.
분명 path parameter에 123은 정수형(int)이였지만, 문자열(str)으로 반환된다.

정수형 반환

이 문제점을 고치기 위해선, user_id를 넣는 매개변수에 int 형을 명확히 명시하는 방법이 있다.

import uvicorn

from fastapi import FastAPI

@app.get("/useres/{user_id}")
def get_user(user_id : int) :
	return {"user_id" : user_id}
>>>http :8000/users/123
{
	"user_id" : 123
}

소수점은?

지금까지 user_id에 정수형을 넣었다.
소수점을 가진 수를 넣으면 어떻게 될까?

>>> http :8000/users/12.3
{
	"detail": [
		{
			"loc" : [
				"path",
				"user_id"
			],
			"msg" : "value is not a valid integer",
			"type" : "type_error.integer"
		}
	]
}

위의 에러가 나오며 응답코드 422를 반환했지만, 에러 메시지를 자세히 볼 필요가 있다.
친절하게 어떤 부분의 오류인지 알려준다.
위의 사항처럼 FastAPI는 적절히 알아서 응답을 보내준다.
이런 기본적인 오류에 대해 따로 코딩할 필요가 없어지기 때문에 FastAPI의 생산성이 올라가게 되는 이유 중 하나인 것 같다.

profile
Junior Backend Developer

0개의 댓글