Add support for not needing ... as default value in required Query(), Path(), Header(), etc. (#4906)

*  Do not require default value in Query(), Path(), Header(), etc

* 📝 Update source examples for docs with default and required values

*  Update tests with new default values and not required Ellipsis

* 📝 Update docs for Query params and update info about default value, required, Ellipsis
This commit is contained in:
Sebastián Ramírez
2022-05-13 18:38:22 -05:00
committed by GitHub
parent 31690dda2c
commit 9262fa8362
107 changed files with 404 additions and 314 deletions

View File

@@ -1,4 +1,4 @@
from typing import Optional
from typing import Union
from fastapi import Body, FastAPI
from pydantic import BaseModel, Field
@@ -8,14 +8,14 @@ app = FastAPI()
class Item(BaseModel):
name: str
description: Optional[str] = Field(
None, title="The description of the item", max_length=300
description: Union[str, None] = Field(
default=None, title="The description of the item", max_length=300
)
price: float = Field(..., gt=0, description="The price must be greater than zero")
tax: Optional[float] = None
price: float = Field(gt=0, description="The price must be greater than zero")
tax: Union[float, None] = None
@app.put("/items/{item_id}")
async def update_item(item_id: int, item: Item = Body(..., embed=True)):
async def update_item(item_id: int, item: Item = Body(embed=True)):
results = {"item_id": item_id, "item": item}
return results