- Path parameter
- Query parameter
- request body
어떤 리소스를 식별하고 싶을 때는 path parameter을 사용한다. path는 /(슬래시)를 통해 구분을 한다.
예를 들면 /users/123은 "users들 중 123 아이디를 갖는 유저를 보내주세요" 라는 뜻이다.
ex) http://127.0.0.1:8000/items/1
path 경로 방식(slash로 구분된 아이디가 1인 item을 가져옴)
@app.get('/items/{id}')
def read_id_item(id):
return items[int(id)]
정렬이나 필터링을 하고 싶을 때는 Query parameter을 쓴다. path와 달리 query는 ?을 통해 구분을 한다.
예를 들면 /users?age=20 은 "users들 중에서 age가 20인 유저를 보내주세요" 라는 뜻이다.
ex) http://127.0.0.1:8000/items?skip=0&limit=5
(첫 번째 item부터 최대 5개 item을 가져옴)
@app.get('/items')
def read_item(skip:int=0,limit:int=10):
return items[skip:skip + limit]
query 방식(items뒤에 ?을 붙여 query를 넣음으로 정렬되는 필터링을 통해 a~b까지 가져와줘 요청을 보냄)
추가하거나 수정하고 싶은 데이터를 서버로 보내 서버에 새로운 데이터 추가
정보가 담길 포맷 생성
class Item(BaseModel):
id:int
content:str
@app.post('/items')
def post_item(item:Item):
items.append(item.content)
return '성공했습니다!'