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

@@ -7,10 +7,10 @@ app = FastAPI()
class Item(BaseModel):
name: str = Field(..., example="Foo")
description: Optional[str] = Field(None, example="A very nice Item")
price: float = Field(..., example=35.4)
tax: Optional[float] = Field(None, example=3.2)
name: str = Field(example="Foo")
description: Optional[str] = Field(default=None, example="A very nice Item")
price: float = Field(example=35.4)
tax: Optional[float] = Field(default=None, example=3.2)
@app.put("/items/{item_id}")

View File

@@ -5,10 +5,10 @@ app = FastAPI()
class Item(BaseModel):
name: str = Field(..., example="Foo")
description: str | None = Field(None, example="A very nice Item")
price: float = Field(..., example=35.4)
tax: float | None = Field(None, example=3.2)
name: str = Field(example="Foo")
description: str | None = Field(default=None, example="A very nice Item")
price: float = Field(example=35.4)
tax: float | None = Field(default=None, example=3.2)
@app.put("/items/{item_id}")

View File

@@ -17,7 +17,6 @@ class Item(BaseModel):
async def update_item(
item_id: int,
item: Item = Body(
...,
example={
"name": "Foo",
"description": "A very nice Item",

View File

@@ -15,7 +15,6 @@ class Item(BaseModel):
async def update_item(
item_id: int,
item: Item = Body(
...,
example={
"name": "Foo",
"description": "A very nice Item",

View File

@@ -18,7 +18,6 @@ async def update_item(
*,
item_id: int,
item: Item = Body(
...,
examples={
"normal": {
"summary": "A normal example",

View File

@@ -16,7 +16,6 @@ async def update_item(
*,
item_id: int,
item: Item = Body(
...,
examples={
"normal": {
"summary": "A normal example",