반응형
이번에는 path operation의 세팅에 관련된 파라미터들을 배워보겠습니다.
status_code
status_code를 이용하여 response의 status code를 지정해 줄 수 있습니다.
from typing import Optional, Set
from fastapi import FastAPI, status
from pydantic import BaseModel
app = FastAPI()
class Item(BaseModel):
name: str
description: Optional[str] = None
price: float
tax: Optional[float] = None
tags: Set[str] = []
@app.post("/items/", response_model=Item, status_code=status.HTTP_201_CREATED)
async def create_item(item: Item):
return item
tags
tags를 이용하여 operation에 tag를 달아 줄 수 있습니다. str list가 쓰입니다.
from typing import Optional, Set
from fastapi import FastAPI
from pydantic import BaseModel
app = FastAPI()
class Item(BaseModel):
name: str
description: Optional[str] = None
price: float
tax: Optional[float] = None
tags: Set[str] = []
@app.post("/items/", response_model=Item, tags=["items"])
async def create_item(item: Item):
return item
@app.get("/items/", tags=["items"])
async def read_items():
return [{"name": "Foo", "price": 42}]
@app.get("/users/", tags=["users"])
async def read_users():
return [{"username": "johndoe"}]
그럼 아래와같이 docs에 tag들이 생깁니다.
반응형
summary & description
summary와 description을 추가 해 줄 수 있습니다.
from typing import Optional, Set
from fastapi import FastAPI
from pydantic import BaseModel
app = FastAPI()
class Item(BaseModel):
name: str
description: Optional[str] = None
price: float
tax: Optional[float] = None
tags: Set[str] = []
@app.post(
"/items/",
response_model=Item,
summary="Create an item",
description="Create an item with all the information, name, description, price, tax and a set of unique tags",
)
async def create_item(item: Item):
return item
아래와 같이 docs에 추가됩니다.
Docs에 description 추가하기
description을 하기와 같은 방법으로도 추가할 수 있습니다.
from typing import Optional, Set
from fastapi import FastAPI
from pydantic import BaseModel
app = FastAPI()
class Item(BaseModel):
name: str
description: Optional[str] = None
price: float
tax: Optional[float] = None
tags: Set[str] = []
@app.post("/items/", response_model=Item, summary="Create an item")
async def create_item(item: Item):
"""
Create an item with all the information:
- **name**: each item must have a name
- **description**: a long description
- **price**: required
- **tax**: if the item doesn't have tax, you can omit this
- **tags**: a set of unique tag strings for this item
"""
return item
반응형
'Fast API > fastapi배우기' 카테고리의 다른 글
Fast API 배우기 19부 - Dependency Injection (4) | 2021.11.03 |
---|---|
Fast API 배우기 18부 - jsonable_encoder, PUT, PATCH (0) | 2021.11.03 |
Fast API 배우기 16부 - Handling Errors (1) | 2021.11.02 |
Fast API 배우기 15부 - Request Files (1) | 2021.11.02 |
Fast API 배우기 14부 - Form Data (0) | 2021.11.02 |
댓글