Skip to content

Commit

Permalink
๐ŸŒ Add Korean translation for docs/ko/docs/tutorial/response-model.md (
Browse files Browse the repository at this point in the history
  • Loading branch information
hard-coders committed Jan 22, 2024
1 parent ef1ccb5 commit 8ec9e30
Showing 1 changed file with 210 additions and 0 deletions.
210 changes: 210 additions & 0 deletions docs/ko/docs/tutorial/response-model.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,210 @@
# ์‘๋‹ต ๋ชจ๋ธ

์–ด๋–ค *๊ฒฝ๋กœ ๋™์ž‘*์ด๋“  ๋งค๊ฐœ๋ณ€์ˆ˜ `response_model`๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์‘๋‹ต์„ ์œ„ํ•œ ๋ชจ๋ธ์„ ์„ ์–ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค:

* `@app.get()`
* `@app.post()`
* `@app.put()`
* `@app.delete()`
* ๊ธฐํƒ€.

```Python hl_lines="17"
{!../../../docs_src/response_model/tutorial001.py!}
```

!!! note "์ฐธ๊ณ "
`response_model`์€ "๋ฐ์ฝ”๋ ˆ์ดํ„ฐ" ๋ฉ”์†Œ๋“œ(`get`, `post`, ๋“ฑ)์˜ ๋งค๊ฐœ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค. ๋ชจ๋“  ๋งค๊ฐœ๋ณ€์ˆ˜๋“ค๊ณผ ๋ณธ๋ฌธ(body)์ฒ˜๋Ÿผ *๊ฒฝ๋กœ ๋™์ž‘ ํ•จ์ˆ˜*๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค.

Pydantic ๋ชจ๋ธ ์–ดํŠธ๋ฆฌ๋ทฐํŠธ๋ฅผ ์„ ์–ธํ•œ ๊ฒƒ๊ณผ ๋™์ผํ•œ ํƒ€์ž…์„ ์ˆ˜์‹ ํ•˜๋ฏ€๋กœ Pydantic ๋ชจ๋ธ์ด ๋  ์ˆ˜ ์žˆ์ง€๋งŒ, `List[Item]`๊ณผ ๊ฐ™์ด Pydantic ๋ชจ๋ธ๋“ค์˜ `list`์ผ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

FastAPI๋Š” ์ด `response_model`๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ:

* ์ถœ๋ ฅ ๋ฐ์ดํ„ฐ๋ฅผ ํƒ€์ž… ์„ ์–ธ์œผ๋กœ ๋ณ€ํ™˜.
* ๋ฐ์ดํ„ฐ ๊ฒ€์ฆ.
* OpenAPI *๊ฒฝ๋กœ ๋™์ž‘*์˜ ์‘๋‹ต์— JSON ์Šคํ‚ค๋งˆ ์ถ”๊ฐ€.
* ์ž๋™ ์ƒ์„ฑ ๋ฌธ์„œ ์‹œ์Šคํ…œ์— ์‚ฌ์šฉ.

ํ•˜์ง€๋งŒ ๊ฐ€์žฅ ์ค‘์š”ํ•œ ๊ฒƒ์€:

* ํ•ด๋‹น ๋ชจ๋ธ์˜ ์ถœ๋ ฅ ๋ฐ์ดํ„ฐ ์ œํ•œ. ์ด๊ฒƒ์ด ์–ผ๋งˆ๋‚˜ ์ค‘์š”ํ•œ์ง€ ์•„๋ž˜์—์„œ ๋ณผ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

!!! note "๊ธฐ์ˆ  ์„ธ๋ถ€์‚ฌํ•ญ"
์‘๋‹ต ๋ชจ๋ธ์€ ํ•จ์ˆ˜์˜ ํƒ€์ž… ์–ด๋…ธํ…Œ์ด์…˜ ๋Œ€์‹  ์ด ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์„ ์–ธํ•˜๋Š”๋ฐ, ๊ฒฝ๋กœ ํ•จ์ˆ˜๊ฐ€ ์‹ค์ œ ์‘๋‹ต ๋ชจ๋ธ์„ ๋ฐ˜ํ™˜ํ•˜์ง€ ์•Š๊ณ  `dict`, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ฐ์ฒด๋‚˜ ๊ธฐํƒ€ ๋‹ค๋ฅธ ๋ชจ๋ธ์„ `response_model`์„ ์‚ฌ์šฉํ•˜์—ฌ ํ•„๋“œ ์ œํ•œ๊ณผ ์ง๋ ฌํ™”๋ฅผ ์ˆ˜ํ–‰ํ•˜๊ณ  ๋ฐ˜ํ™˜ํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค

## ๋™์ผํ•œ ์ž…๋ ฅ ๋ฐ์ดํ„ฐ ๋ฐ˜ํ™˜

์—ฌ๊ธฐ์„œ ์šฐ๋ฆฌ๋Š” ํ‰๋ฌธ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ํฌํ•จํ•˜๋Š” `UserIn` ๋ชจ๋ธ์„ ์„ ์–ธํ•ฉ๋‹ˆ๋‹ค:

```Python hl_lines="9 11"
{!../../../docs_src/response_model/tutorial002.py!}
```

๊ทธ๋ฆฌ๊ณ  ์ด ๋ชจ๋ธ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ž…๋ ฅ์„ ์„ ์–ธํ•˜๊ณ  ๊ฐ™์€ ๋ชจ๋ธ๋กœ ์ถœ๋ ฅ์„ ์„ ์–ธํ•ฉ๋‹ˆ๋‹ค:

```Python hl_lines="17-18"
{!../../../docs_src/response_model/tutorial002.py!}
```

์ด์ œ ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ๋น„๋ฐ€๋ฒˆํ˜ธ๋กœ ์‚ฌ์šฉ์ž๋ฅผ ๋งŒ๋“ค ๋•Œ๋งˆ๋‹ค API๋Š” ์‘๋‹ต์œผ๋กœ ๋™์ผํ•œ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

์ด ๊ฒฝ์šฐ, ์‚ฌ์šฉ์ž๊ฐ€ ์Šค์Šค๋กœ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ๋ฐœ์‹ ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ๋ฌธ์ œ๊ฐ€ ๋˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋Ÿฌ๋‚˜ ๋™์ผํ•œ ๋ชจ๋ธ์„ ๋‹ค๋ฅธ *๊ฒฝ๋กœ ๋™์ž‘*์—์„œ ์‚ฌ์šฉํ•  ๊ฒฝ์šฐ, ๋ชจ๋“  ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ์‚ฌ์šฉ์ž์˜ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ๋ฐœ์‹ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

!!! danger "์œ„ํ—˜"
์ ˆ๋Œ€๋กœ ์‚ฌ์šฉ์ž์˜ ํ‰๋ฌธ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์ €์žฅํ•˜๊ฑฐ๋‚˜ ์‘๋‹ต์œผ๋กœ ๋ฐœ์‹ ํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค.

## ์ถœ๋ ฅ ๋ชจ๋ธ ์ถ”๊ฐ€

๋Œ€์‹  ํ‰๋ฌธ ๋น„๋ฐ€๋ฒˆํ˜ธ๋กœ ์ž…๋ ฅ ๋ชจ๋ธ์„ ๋งŒ๋“ค๊ณ  ํ•ด๋‹น ๋น„๋ฐ€๋ฒˆํ˜ธ ์—†์ด ์ถœ๋ ฅ ๋ชจ๋ธ์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค:

```Python hl_lines="9 11 16"
{!../../../docs_src/response_model/tutorial003.py!}
```

์—ฌ๊ธฐ์„œ *๊ฒฝ๋กœ ๋™์ž‘ ํ•จ์ˆ˜*๊ฐ€ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ํฌํ•จํ•˜๋Š” ๋™์ผํ•œ ์ž…๋ ฅ ์‚ฌ์šฉ์ž๋ฅผ ๋ฐ˜ํ™˜ํ• ์ง€๋ผ๋„:

```Python hl_lines="24"
{!../../../docs_src/response_model/tutorial003.py!}
```

...`response_model`์„ `UserOut` ๋ชจ๋ธ๋กœ ์„ ์–ธํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ํฌํ•จํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค:

```Python hl_lines="22"
{!../../../docs_src/response_model/tutorial003.py!}
```

๋”ฐ๋ผ์„œ **FastAPI**๋Š” ์ถœ๋ ฅ ๋ชจ๋ธ์—์„œ ์„ ์–ธํ•˜์ง€ ์•Š์€ ๋ชจ๋“  ๋ฐ์ดํ„ฐ๋ฅผ (Pydantic์„ ์‚ฌ์šฉํ•˜์—ฌ) ํ•„ํ„ฐ๋งํ•ฉ๋‹ˆ๋‹ค.

## ๋ฌธ์„œ์—์„œ ๋ณด๊ธฐ

์ž๋™ ์ƒ์„ฑ ๋ฌธ์„œ๋ฅผ ๋ณด๋ฉด ์ž…๋ ฅ ๋ชจ๋ธ๊ณผ ์ถœ๋ ฅ ๋ชจ๋ธ์ด ๊ฐ์ž์˜ JSON ์Šคํ‚ค๋งˆ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์Œ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค:

<img src="/img/tutorial/response-model/image01.png">

๊ทธ๋ฆฌ๊ณ  ๋‘ ๋ชจ๋ธ ๋ชจ๋‘ ๋Œ€ํ™”ํ˜• API ๋ฌธ์„œ์— ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค:

<img src="/img/tutorial/response-model/image02.png">

## ์‘๋‹ต ๋ชจ๋ธ ์ธ์ฝ”๋”ฉ ๋งค๊ฐœ๋ณ€์ˆ˜

์‘๋‹ต ๋ชจ๋ธ์€ ์•„๋ž˜์™€ ๊ฐ™์ด ๊ธฐ๋ณธ๊ฐ’์„ ๊ฐ€์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค:

```Python hl_lines="11 13-14"
{!../../../docs_src/response_model/tutorial004.py!}
```

* `description: Optional[str] = None`์€ ๊ธฐ๋ณธ๊ฐ’์œผ๋กœ `None`์„ ๊ฐ–์Šต๋‹ˆ๋‹ค.
* `tax: float = 10.5`๋Š” ๊ธฐ๋ณธ๊ฐ’์œผ๋กœ `10.5`๋ฅผ ๊ฐ–์Šต๋‹ˆ๋‹ค.
* `tags: List[str] = []` ๋นˆ ๋ฆฌ์ŠคํŠธ์˜ ๊ธฐ๋ณธ๊ฐ’์œผ๋กœ: `[]`.

๊ทธ๋Ÿฌ๋‚˜ ์‹ค์ œ๋กœ ์ €์žฅ๋˜์ง€ ์•Š์•˜์„ ๊ฒฝ์šฐ ๊ฒฐ๊ณผ์—์„œ ๊ฐ’์„ ์ƒ๋žตํ•˜๊ณ  ์‹ถ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด, NoSQL ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ๋งŽ์€ ์„ ํƒ์  ์†์„ฑ์ด ์žˆ๋Š” ๋ชจ๋ธ์ด ์žˆ์ง€๋งŒ, ๊ธฐ๋ณธ๊ฐ’์œผ๋กœ ๊ฐ€๋“ ์ฐฌ ๋งค์šฐ ๊ธด JSON ์‘๋‹ต์„ ๋ณด๋‚ด๊ณ  ์‹ถ์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

### `response_model_exclude_unset` ๋งค๊ฐœ๋ณ€์ˆ˜ ์‚ฌ์šฉ

*๊ฒฝ๋กœ ๋™์ž‘ ๋ฐ์ฝ”๋ ˆ์ดํ„ฐ* ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ `response_model_exclude_unset=True`๋กœ ์„ค์ • ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค:

```Python hl_lines="24"
{!../../../docs_src/response_model/tutorial004.py!}
```

์ด๋Ÿฌํ•œ ๊ธฐ๋ณธ๊ฐ’์€ ์‘๋‹ต์— ํฌํ•จ๋˜์ง€ ์•Š๊ณ  ์‹ค์ œ๋กœ ์„ค์ •๋œ ๊ฐ’๋งŒ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.

๋”ฐ๋ผ์„œ ํ•ด๋‹น *๊ฒฝ๋กœ ๋™์ž‘*์— ID๊ฐ€ `foo`์ธ ํ•ญ๋ชฉ(items)์„ ์š”์ฒญ์œผ๋กœ ๋ณด๋‚ด๋ฉด (๊ธฐ๋ณธ๊ฐ’์„ ์ œ์™ธํ•œ) ์‘๋‹ต์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค:

```JSON
{
"name": "Foo",
"price": 50.2
}
```

!!! info "์ •๋ณด"
FastAPI๋Š” ์ด๋ฅผ ์œ„ํ•ด Pydantic ๋ชจ๋ธ์˜ `.dict()`์˜ <a href="https://pydantic-docs.helpmanual.io/usage/exporting_models/#modeldict" class="external-link" target="_blank"> `exclude_unset` ๋งค๊ฐœ๋ณ€์ˆ˜</a>๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

!!! info "์ •๋ณด"
์•„๋ž˜ ๋˜ํ•œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค:

* `response_model_exclude_defaults=True`
* `response_model_exclude_none=True`

<a href="https://pydantic-docs.helpmanual.io/usage/exporting_models/#modeldict" class="external-link" target="_blank">Pydantic ๋ฌธ์„œ</a>์—์„œ `exclude_defaults` ๋ฐ `exclude_none`์— ๋Œ€ํ•ด ์„ค๋ช…ํ•œ ๋Œ€๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

#### ๊ธฐ๋ณธ๊ฐ’์ด ์žˆ๋Š” ํ•„๋“œ๋ฅผ ๊ฐ–๋Š” ๊ฐ’์˜ ๋ฐ์ดํ„ฐ

ํ•˜์ง€๋งŒ ๋ชจ๋ธ์˜ ํ•„๋“œ๊ฐ€ ๊ธฐ๋ณธ๊ฐ’์ด ์žˆ์–ด๋„ ID๊ฐ€ `bar`์ธ ํ•ญ๋ชฉ(items)์ฒ˜๋Ÿผ ๋ฐ์ดํ„ฐ๊ฐ€ ๊ฐ’์„ ๊ฐ–๋Š”๋‹ค๋ฉด:

```Python hl_lines="3 5"
{
"name": "Bar",
"description": "The bartenders",
"price": 62,
"tax": 20.2
}
```

์‘๋‹ต์— ํ•ด๋‹น ๊ฐ’๋“ค์ด ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.

#### ๊ธฐ๋ณธ๊ฐ’๊ณผ ๋™์ผํ•œ ๊ฐ’์„ ๊ฐ–๋Š” ๋ฐ์ดํ„ฐ

If the data has the same values as the default ones, like the item with ID `baz`:
ID๊ฐ€ `baz`์ธ ํ•ญ๋ชฉ(items)์ฒ˜๋Ÿผ ๊ธฐ๋ณธ๊ฐ’๊ณผ ๋™์ผํ•œ ๊ฐ’์„ ๊ฐ–๋Š”๋‹ค๋ฉด:

```Python hl_lines="3 5-6"
{
"name": "Baz",
"description": None,
"price": 50.2,
"tax": 10.5,
"tags": []
}
```

`description`, `tax` ๊ทธ๋ฆฌ๊ณ  `tags`๊ฐ€ ๊ธฐ๋ณธ๊ฐ’๊ณผ ๊ฐ™๋”๋ผ๋„ (๊ธฐ๋ณธ๊ฐ’์—์„œ ๊ฐ€์ ธ์˜ค๋Š” ๋Œ€์‹ ) ๊ฐ’๋“ค์ด ๋ช…์‹œ์ ์œผ๋กœ ์„ค์ •๋˜์—ˆ๋‹ค๋Š” ๊ฒƒ์„ ์ธ์ง€ํ•  ์ •๋„๋กœ FastAPI๋Š” ์ถฉ๋ถ„ํžˆ ๋˜‘๋˜‘ํ•ฉ๋‹ˆ๋‹ค(์‚ฌ์‹ค, Pydantic์ด ์ถฉ๋ถ„ํžˆ ๋˜‘๋˜‘ํ•ฉ๋‹ˆ๋‹ค).

๋”ฐ๋ผ์„œ JSON ์Šคํ‚ค๋งˆ์— ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.

!!! tip "ํŒ"
`None` ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๋‹ค๋ฅธ ์–ด๋–ค ๊ฒƒ๋„ ๊ธฐ๋ณธ๊ฐ’์ด ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฆฌ์ŠคํŠธ(`[]`), `float`์ธ `10.5` ๋“ฑ์ด ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

### `response_model_include` ๋ฐ `response_model_exclude`

*๊ฒฝ๋กœ ๋™์ž‘ ๋ฐ์ฝ”๋ ˆ์ดํ„ฐ* ๋งค๊ฐœ๋ณ€์ˆ˜ `response_model_include` ๋ฐ `response_model_exclude`๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด๋“ค์€ ํฌํ•จ(๋‚˜๋จธ์ง€ ์ƒ๋žต)ํ•˜๊ฑฐ๋‚˜ ์ œ์™ธ(๋‚˜๋จธ์ง€ ํฌํ•จ) ํ•  ์–ดํŠธ๋ฆฌ๋ทฐํŠธ์˜ ์ด๋ฆ„๊ณผ `str`์˜ `set`์„ ๋ฐ›์Šต๋‹ˆ๋‹ค.

Pydantic ๋ชจ๋ธ์ด ํ•˜๋‚˜๋งŒ ์žˆ๊ณ  ์ถœ๋ ฅ์—์„œ โ€‹โ€‹์ผ๋ถ€ ๋ฐ์ดํ„ฐ๋ฅผ ์ œ๊ฑฐํ•˜๋ ค๋Š” ๊ฒฝ์šฐ ๋น ๋ฅธ ์ง€๋ฆ„๊ธธ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

!!! tip "ํŒ"
ํ•˜์ง€๋งŒ ์ด๋Ÿฌํ•œ ๋งค๊ฐœ๋ณ€์ˆ˜ ๋Œ€์‹  ์—ฌ๋Ÿฌ ํด๋ž˜์Šค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์œ„ ์•„์ด๋””์–ด๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์„ ์ถ”์ฒœํ•ฉ๋‹ˆ๋‹ค.

์ด๋Š” ์ผ๋ถ€ ์–ดํŠธ๋ฆฌ๋ทฐํŠธ๋ฅผ ์ƒ๋žตํ•˜๊ธฐ ์œ„ํ•ด `response_model_include` ๋˜๋Š” `response_model_exclude`๋ฅผ ์‚ฌ์šฉํ•˜๋”๋ผ๋„ ์•ฑ์˜ OpenAPI(๋ฐ ๋ฌธ์„œ)๊ฐ€ ์ƒ์„ฑํ•œ JSON ์Šคํ‚ค๋งˆ๊ฐ€ ์—ฌ์ „ํžˆ ์ „์ฒด ๋ชจ๋ธ์— ๋Œ€ํ•œ ์Šคํ‚ค๋งˆ์ด๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

๋น„์Šทํ•˜๊ฒŒ ์ž‘๋™ํ•˜๋Š” `response_model_by_alias` ์—ญ์‹œ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ์ ์šฉ๋ฉ๋‹ˆ๋‹ค.

```Python hl_lines="31 37"
{!../../../docs_src/response_model/tutorial005.py!}
```

!!! tip "ํŒ"
๋ฌธ๋ฒ• `{"name", "description"}`์€ ๋‘ ๊ฐ’์„ ๊ฐ–๋Š” `set`์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

์ด๋Š” `set(["name", "description"])`๊ณผ ๋™์ผํ•ฉ๋‹ˆ๋‹ค.

#### `set` ๋Œ€์‹  `list` ์‚ฌ์šฉํ•˜๊ธฐ

`list` ๋˜๋Š” `tuple` ๋Œ€์‹  `set`์„ ์‚ฌ์šฉํ•˜๋Š” ๋ฒ•์„ ์žŠ์—ˆ๋”๋ผ๋„, FastAPI๋Š” `set`์œผ๋กœ ๋ณ€ํ™˜ํ•˜๊ณ  ์ •์ƒ์ ์œผ๋กœ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค:

```Python hl_lines="31 37"
{!../../../docs_src/response_model/tutorial006.py!}
```

## ์š”์•ฝ

์‘๋‹ต ๋ชจ๋ธ์„ ์ •์˜ํ•˜๊ณ  ๊ฐœ์ธ์ •๋ณด๊ฐ€ ํ•„ํ„ฐ๋˜๋Š” ๊ฒƒ์„ ๋ณด์žฅํ•˜๊ธฐ ์œ„ํ•ด *๊ฒฝ๋กœ ๋™์ž‘ ๋ฐ์ฝ”๋ ˆ์ดํ„ฐ*์˜ ๋งค๊ฐœ๋ณ€์ˆ˜ `response_model`์„ ์‚ฌ์šฉํ•˜์„ธ์š”.

๋ช…์‹œ์ ์œผ๋กœ ์„ค์ •๋œ ๊ฐ’๋งŒ ๋ฐ˜ํ™˜ํ•˜๋ ค๋ฉด `response_model_exclude_unset`์„ ์‚ฌ์šฉํ•˜์„ธ์š”.

0 comments on commit 8ec9e30

Please sign in to comment.