committed by
GitHub
1 changed files with 303 additions and 0 deletions
@ -0,0 +1,303 @@ |
|||
# ์ฟผ๋ฆฌ ๋งค๊ฐ๋ณ์์ ๋ฌธ์์ด ๊ฒ์ฆ |
|||
|
|||
**FastAPI**๋ฅผ ์ฌ์ฉํ๋ฉด ๋งค๊ฐ๋ณ์์ ๋ํ ์ถ๊ฐ ์ ๋ณด ๋ฐ ๊ฒ์ฆ์ ์ ์ธํ ์ ์์ต๋๋ค. |
|||
|
|||
์ด ์์ฉ ํ๋ก๊ทธ๋จ์ ์๋ก ๋ค์ด๋ณด๊ฒ ์ต๋๋ค: |
|||
|
|||
```Python hl_lines="9" |
|||
{!../../../docs_src/query_params_str_validations/tutorial001.py!} |
|||
``` |
|||
|
|||
์ฟผ๋ฆฌ ๋งค๊ฐ๋ณ์ `q`๋ `Optional[str]` ์๋ฃํ์
๋๋ค. ์ฆ, `str` ์๋ฃํ์ด์ง๋ง `None` ์ญ์ ๋ ์ ์์์ ๋ปํ๊ณ , ์ค์ ๋ก ๊ธฐ๋ณธ๊ฐ์ `None`์ด๊ธฐ ๋๋ฌธ์ FastAPI๋ ์ด ๋งค๊ฐ๋ณ์๊ฐ ํ์๊ฐ ์๋๋ผ๋ ๊ฒ์ ์๋๋ค. |
|||
|
|||
!!! note "์ฐธ๊ณ " |
|||
FastAPI๋ `q`์ ๊ธฐ๋ณธ๊ฐ์ด `= None`์ด๊ธฐ ๋๋ฌธ์ ํ์๊ฐ ์๋์ ์๋๋ค. |
|||
|
|||
`Optional[str]`์ ์๋ `Optional`์ FastAPI๊ฐ ์ฌ์ฉํ๋๊ฒ ์๋์ง๋ง, ํธ์ง๊ธฐ์๊ฒ ๋ ๋์ ์ง์๊ณผ ์ค๋ฅ ํ์ง๋ฅผ ์ ๊ณตํ๊ฒ ํด์ค๋๋ค. |
|||
|
|||
## ์ถ๊ฐ ๊ฒ์ฆ |
|||
|
|||
`q`๊ฐ ์ ํ์ ์ด์ง๋ง ๊ฐ์ด ์ฃผ์ด์ง ๋๋ง๋ค **๊ฐ์ด 50 ๊ธ์๋ฅผ ์ด๊ณผํ์ง ์๊ฒ** ๊ฐ์ ํ๋ ค ํฉ๋๋ค. |
|||
|
|||
### `Query` ์ํฌํธ |
|||
|
|||
์ด๋ฅผ ์ํด ๋จผ์ `fastapi`์์ `Query`๋ฅผ ์ํฌํธํฉ๋๋ค: |
|||
|
|||
```Python hl_lines="3" |
|||
{!../../../docs_src/query_params_str_validations/tutorial002.py!} |
|||
``` |
|||
|
|||
## ๊ธฐ๋ณธ๊ฐ์ผ๋ก `Query` ์ฌ์ฉ |
|||
|
|||
์ด์ `Query`๋ฅผ ๋งค๊ฐ๋ณ์์ ๊ธฐ๋ณธ๊ฐ์ผ๋ก ์ฌ์ฉํ์ฌ `max_length` ๋งค๊ฐ๋ณ์๋ฅผ 50์ผ๋ก ์ค์ ํฉ๋๋ค: |
|||
|
|||
```Python hl_lines="9" |
|||
{!../../../docs_src/query_params_str_validations/tutorial002.py!} |
|||
``` |
|||
|
|||
๊ธฐ๋ณธ๊ฐ `None`์ `Query(None)`์ผ๋ก ๋ฐ๊ฟ์ผ ํ๋ฏ๋ก, `Query`์ ์ฒซ ๋ฒ์งธ ๋งค๊ฐ๋ณ์๋ ๊ธฐ๋ณธ๊ฐ์ ์ ์ํ๋ ๊ฒ๊ณผ ๊ฐ์ ๋ชฉ์ ์ผ๋ก ์ฌ์ฉ๋ฉ๋๋ค. |
|||
|
|||
๊ทธ๋ฌ๋ฏ๋ก: |
|||
|
|||
```Python |
|||
q: Optional[str] = Query(None) |
|||
``` |
|||
|
|||
...์ ์ฝ๋๋ ์๋์ ๋์ผํ๊ฒ ๋งค๊ฐ๋ณ์๋ฅผ ์ ํ์ ์ผ๋ก ๋ง๋ญ๋๋ค: |
|||
|
|||
```Python |
|||
q: Optional[str] = None |
|||
``` |
|||
|
|||
ํ์ง๋ง ๋ช
์์ ์ผ๋ก ์ฟผ๋ฆฌ ๋งค๊ฐ๋ณ์๋ฅผ ์ ์ธํฉ๋๋ค. |
|||
|
|||
!!! info "์ ๋ณด" |
|||
FastAPI๋ ๋ค์ ๋ถ๋ถ์ ๊ด์ฌ์ด ์์ต๋๋ค: |
|||
|
|||
```Python |
|||
= None |
|||
``` |
|||
|
|||
๋๋: |
|||
|
|||
```Python |
|||
= Query(None) |
|||
``` |
|||
|
|||
๊ทธ๋ฆฌ๊ณ `None`์ ์ฌ์ฉํ์ฌ ์ฟผ๋ผ ๋งค๊ฐ๋ณ์๊ฐ ํ์์ ์ด์ง ์๋ค๋ ๊ฒ์ ํ์
ํฉ๋๋ค. |
|||
|
|||
`Optional` ๋ถ๋ถ์ ํธ์ง๊ธฐ์๊ฒ ๋ ๋์ ์ง์์ ์ ๊ณตํ๊ธฐ ์ํด์๋ง ์ฌ์ฉ๋ฉ๋๋ค. |
|||
|
|||
๋ํ `Query`๋ก ๋ ๋ง์ ๋งค๊ฐ๋ณ์๋ฅผ ์ ๋ฌํ ์ ์์ต๋๋ค. ์ง๊ธ์ ๊ฒฝ์ฐ ๋ฌธ์์ด์ ์ ์ฉ๋๋ `max_length` ๋งค๊ฐ๋ณ์์
๋๋ค: |
|||
|
|||
```Python |
|||
q: str = Query(None, max_length=50) |
|||
``` |
|||
|
|||
์ด๋ ๋ฐ์ดํฐ๋ฅผ ๊ฒ์ฆํ ๊ฒ์ด๊ณ , ๋ฐ์ดํฐ๊ฐ ์ ํจํ์ง ์๋ค๋ฉด ๋ช
๋ฐฑํ ์ค๋ฅ๋ฅผ ๋ณด์ฌ์ฃผ๋ฉฐ, OpenAPI ์คํค๋ง *๊ฒฝ๋ก ๋์*์ ๋งค๊ฐ๋ณ์๋ฅผ ๋ฌธ์ํ ํฉ๋๋ค. |
|||
|
|||
## ๊ฒ์ฆ ์ถ๊ฐ |
|||
|
|||
๋งค๊ฐ๋ณ์ `min_length` ๋ํ ์ถ๊ฐํ ์ ์์ต๋๋ค: |
|||
|
|||
```Python hl_lines="9" |
|||
{!../../../docs_src/query_params_str_validations/tutorial003.py!} |
|||
``` |
|||
|
|||
## ์ ๊ท์ ์ถ๊ฐ |
|||
|
|||
๋งค๊ฐ๋ณ์์ ์ผ์นํด์ผ ํ๋ <abbr title="์ ๊ทํํ์(regular expression), regex ๋๋ regexp๋ ๋ฌธ์์ด ์กฐํ ํจํด์ ์ ์ํ๋ ๋ฌธ์๋ค์ ์์ด์
๋๋ค">์ ๊ทํํ์</abbr>์ ์ ์ํ ์ ์์ต๋๋ค: |
|||
|
|||
```Python hl_lines="10" |
|||
{!../../../docs_src/query_params_str_validations/tutorial004.py!} |
|||
``` |
|||
|
|||
์ด ํน์ ์ ๊ทํํ์์ ์ ๋ฌ ๋ฐ์ ๋งค๊ฐ๋ณ์ ๊ฐ์ ๊ฒ์ฌํฉ๋๋ค: |
|||
|
|||
* `^`: ์ด์ ์ ๋ฌธ์๊ฐ ์๊ณ ๋ค๋ฐ๋ฅด๋ ๋ฌธ์๋ก ์์ํฉ๋๋ค. |
|||
* `fixedquery`: ์ ํํ `fixedquery` ๊ฐ์ ๊ฐ์ต๋๋ค. |
|||
* `$`: ์ฌ๊ธฐ์ ๋๋๊ณ `fixedquery` ์ดํ๋ก ์๋ฌด ๋ฌธ์๋ ๊ฐ์ง ์์ต๋๋ค. |
|||
|
|||
**"์ ๊ทํํ์"** ๊ฐ๋
์ ๋ํด ์์ค๊ฐ์ ๋๊ผ๋ค๋ฉด ๊ฑฑ์ ํ์ง ์์๋ ๋ฉ๋๋ค. ๋ง์ ์ฌ๋์๊ฒ ์ด๋ ค์ด ์ฃผ์ ์
๋๋ค. ์์ง์ ์ ๊ทํํ์ ์์ด๋ ๋ง์ ์์
๋ค์ ํ ์ ์์ต๋๋ค. |
|||
|
|||
ํ์ง๋ง ์ธ์ ๋ ์ง ๊ฐ์ ๋ฐฐ์ธ์ ์๊ณ , **FastAPI**์์ ์ง์ ์ฌ์ฉํ ์ ์๋ค๋ ์ฌ์ค์ ์๊ณ ์์ด์ผ ํฉ๋๋ค. |
|||
|
|||
## ๊ธฐ๋ณธ๊ฐ |
|||
|
|||
๊ธฐ๋ณธ๊ฐ์ผ๋ก ์ฌ์ฉํ๋ ์ฒซ ๋ฒ์งธ ์ธ์๋ก `None`์ ์ ๋ฌํ๋ฏ์ด, ๋ค๋ฅธ ๊ฐ์ ์ ๋ฌํ ์ ์์ต๋๋ค. |
|||
|
|||
`min_length`๊ฐ `3`์ด๊ณ , ๊ธฐ๋ณธ๊ฐ์ด `"fixedquery"`์ธ ์ฟผ๋ฆฌ ๋งค๊ฐ๋ณ์ `q`๋ฅผ ์ ์ธํด๋ด
์๋ค: |
|||
|
|||
```Python hl_lines="7" |
|||
{!../../../docs_src/query_params_str_validations/tutorial005.py!} |
|||
``` |
|||
|
|||
!!! note "์ฐธ๊ณ " |
|||
๊ธฐ๋ณธ๊ฐ์ ๊ฐ๋ ๊ฒ๋ง์ผ๋ก ๋งค๊ฐ๋ณ์๋ ์ ํ์ ์ด ๋ฉ๋๋ค. |
|||
|
|||
## ํ์๋ก ๋ง๋ค๊ธฐ |
|||
|
|||
๋ ๋ง์ ๊ฒ์ฆ์ด๋ ๋ฉํ๋ฐ์ดํฐ๋ฅผ ์ ์ธํ ํ์๊ฐ ์๋ ๊ฒฝ์ฐ, ๋ค์๊ณผ ๊ฐ์ด ๊ธฐ๋ณธ๊ฐ์ ์ ์ธํ์ง ์๊ณ ์ฟผ๋ฆฌ ๋งค๊ฐ๋ณ์ `q`๋ฅผ ํ์๋ก ๋ง๋ค ์ ์์ต๋๋ค: |
|||
|
|||
```Python |
|||
q: str |
|||
``` |
|||
|
|||
์๋ ๋์ : |
|||
|
|||
```Python |
|||
q: Optional[str] = None |
|||
``` |
|||
|
|||
๊ทธ๋ฌ๋ ์ด์ ๋ค์๊ณผ ๊ฐ์ด `Query`๋ก ์ ์ธํฉ๋๋ค: |
|||
|
|||
```Python |
|||
q: Optional[str] = Query(None, min_length=3) |
|||
``` |
|||
|
|||
๊ทธ๋์ `Query`๋ฅผ ํ์๊ฐ์ผ๋ก ๋ง๋ค์ด์ผ ํ ๋๋ฉด, ์ฒซ ๋ฒ์งธ ์ธ์๋ก `...`๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค: |
|||
|
|||
```Python hl_lines="7" |
|||
{!../../../docs_src/query_params_str_validations/tutorial006.py!} |
|||
``` |
|||
|
|||
!!! info "์ ๋ณด" |
|||
์ด์ ์ `...`๋ฅผ ๋ณธ์ ์ด ์๋ค๋ฉด: ํน๋ณํ ๋จ์ผ๊ฐ์ผ๋ก, <a href="https://docs.python.org/3/library/constants.html#Ellipsis" class="external-link" target="_blank">ํ์ด์ฌ์ ์ผ๋ถ์ด๋ฉฐ "Ellipsis"๋ผ ๋ถ๋ฆ
๋๋ค</a>. |
|||
|
|||
์ด๋ ๊ฒ ํ๋ฉด **FastAPI**๊ฐ ์ด ๋งค๊ฐ๋ณ์๋ ํ์์์ ์ ์ ์์ต๋๋ค. |
|||
|
|||
## ์ฟผ๋ฆฌ ๋งค๊ฐ๋ณ์ ๋ฆฌ์คํธ / ๋ค์ค๊ฐ |
|||
|
|||
์ฟผ๋ฆฌ ๋งค๊ฐ๋ณ์๋ฅผ `Query`์ ํจ๊ป ๋ช
์์ ์ผ๋ก ์ ์ธํ ๋, ๊ฐ๋ค์ ๋ฆฌ์คํธ๋ ๋ค๋ฅธ ๋ฐฉ๋ฒ์ผ๋ก ์ฌ๋ฌ ๊ฐ์ ๋ฐ๋๋ก ์ ์ธ ํ ์๋ ์์ต๋๋ค. |
|||
|
|||
์๋ฅผ ๋ค์ด, URL์์ ์ฌ๋ฌ๋ฒ ๋์ค๋ `q` ์ฟผ๋ฆฌ ๋งค๊ฐ๋ณ์๋ฅผ ์ ์ธํ๋ ค๋ฉด ๋ค์๊ณผ ๊ฐ์ด ์์ฑํ ์ ์์ต๋๋ค: |
|||
|
|||
```Python hl_lines="9" |
|||
{!../../../docs_src/query_params_str_validations/tutorial011.py!} |
|||
``` |
|||
|
|||
์๋์ ๊ฐ์ URL์ ์ฌ์ฉํฉ๋๋ค: |
|||
|
|||
``` |
|||
http://localhost:8000/items/?q=foo&q=bar |
|||
``` |
|||
|
|||
์ฌ๋ฌ `q` *์ฟผ๋ฆฌ ๋งค๊ฐ๋ณ์* ๊ฐ๋ค์ (`foo` ๋ฐ `bar`) ํ์ด์ฌ `list`๋ก *๊ฒฝ๋ก ์๋ ํจ์* ๋ด *ํจ์ ๋งค๊ฐ๋ณ์* `q`๋ก ์ ๋ฌ ๋ฐ์ต๋๋ค. |
|||
|
|||
๋ฐ๋ผ์ ํด๋น URL์ ๋ํ ์๋ต์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค: |
|||
|
|||
```JSON |
|||
{ |
|||
"q": [ |
|||
"foo", |
|||
"bar" |
|||
] |
|||
} |
|||
``` |
|||
|
|||
!!! tip "ํ" |
|||
์์ ์์ ๊ฐ์ด `list` ์๋ฃํ์ผ๋ก ์ฟผ๋ฆฌ ๋งค๊ฐ๋ณ์๋ฅผ ์ ์ธํ๋ ค๋ฉด `Query`๋ฅผ ๋ช
์์ ์ผ๋ก ์ฌ์ฉํด์ผ ํฉ๋๋ค. ๊ทธ๋ ์ง ์์ผ๋ฉด ์์ฒญ ๋ณธ๋ฌธ์ผ๋ก ํด์๋ฉ๋๋ค. |
|||
|
|||
๋ํํ API ๋ฌธ์๋ ์ฌ๋ฌ ๊ฐ์ ํ์ฉํ๋๋ก ์์ ๋ฉ๋๋ค: |
|||
|
|||
<img src="/img/tutorial/query-params-str-validations/image02.png"> |
|||
|
|||
### ์ฟผ๋ฆฌ ๋งค๊ฐ๋ณ์ ๋ฆฌ์คํธ / ๊ธฐ๋ณธ๊ฐ์ ์ฌ์ฉํ๋ ๋ค์ค๊ฐ |
|||
|
|||
๊ทธ๋ฆฌ๊ณ ์ ๊ณต๋ ๊ฐ์ด ์์ผ๋ฉด ๊ธฐ๋ณธ `list` ๊ฐ์ ์ ์ํ ์๋ ์์ต๋๋ค: |
|||
|
|||
```Python hl_lines="9" |
|||
{!../../../docs_src/query_params_str_validations/tutorial012.py!} |
|||
``` |
|||
|
|||
์๋๋ก ์ด๋ํ๋ค๋ฉด: |
|||
|
|||
``` |
|||
http://localhost:8000/items/ |
|||
``` |
|||
|
|||
`q`์ ๊ธฐ๋ณธ๊ฐ์: `["foo", "bar"]`์ด๋ฉฐ ์๋ต์ ๋ค์์ด ๋ฉ๋๋ค: |
|||
|
|||
```JSON |
|||
{ |
|||
"q": [ |
|||
"foo", |
|||
"bar" |
|||
] |
|||
} |
|||
``` |
|||
|
|||
#### `list` ์ฌ์ฉํ๊ธฐ |
|||
|
|||
`List[str]` ๋์ `list`๋ฅผ ์ง์ ์ฌ์ฉํ ์๋ ์์ต๋๋ค: |
|||
|
|||
```Python hl_lines="7" |
|||
{!../../../docs_src/query_params_str_validations/tutorial013.py!} |
|||
``` |
|||
|
|||
!!! note "์ฐธ๊ณ " |
|||
์ด ๊ฒฝ์ฐ FastAPI๋ ๋ฆฌ์คํธ์ ๋ด์ฉ์ ๊ฒ์ฌํ์ง ์์์ ๋ช
์ฌํ๊ธฐ ๋ฐ๋๋๋ค. |
|||
|
|||
์๋ฅผ ๋ค์ด, `List[int]`๋ ๋ฆฌ์คํธ ๋ด์ฉ์ด ์ ์์ธ์ง ๊ฒ์ฌ(๋ฐ ๋ฌธ์ํ)ํฉ๋๋ค. ํ์ง๋ง `list` ๋จ๋
์ผ ๊ฒฝ์ฐ๋ ์๋๋๋ค. |
|||
|
|||
## ๋ ๋ง์ ๋ฉํ๋ฐ์ดํฐ ์ ์ธ |
|||
|
|||
๋งค๊ฐ๋ณ์์ ๋ํ ์ ๋ณด๋ฅผ ์ถ๊ฐํ ์ ์์ต๋๋ค. |
|||
|
|||
ํด๋น ์ ๋ณด๋ ์์ฑ๋ OpenAPI์ ํฌํจ๋๊ณ ๋ฌธ์ ์ฌ์ฉ์ ์ธํฐํ์ด์ค ๋ฐ ์ธ๋ถ ๋๊ตฌ์์ ์ฌ์ฉ๋ฉ๋๋ค. |
|||
|
|||
!!! note "์ฐธ๊ณ " |
|||
๋๊ตฌ์ ๋ฐ๋ผ OpenAPI ์ง์ ์์ค์ด ๋ค๋ฅผ ์ ์์์ ๋ช
์ฌํ๊ธฐ ๋ฐ๋๋๋ค. |
|||
|
|||
์ผ๋ถ๋ ์์ง ์ ์ธ๋ ์ถ๊ฐ ์ ๋ณด๋ฅผ ๋ชจ๋ ํ์ํ์ง ์์ ์ ์์ง๋ง, ๋๋ถ๋ถ์ ๊ฒฝ์ฐ ๋๋ฝ๋ ๊ธฐ๋ฅ์ ์ด๋ฏธ ๊ฐ๋ฐ ๊ณํ์ด ์์ต๋๋ค. |
|||
|
|||
`title`์ ์ถ๊ฐํ ์ ์์ต๋๋ค: |
|||
|
|||
```Python hl_lines="10" |
|||
{!../../../docs_src/query_params_str_validations/tutorial007.py!} |
|||
``` |
|||
|
|||
๊ทธ๋ฆฌ๊ณ `description`๋ ์ถ๊ฐํ ์ ์์ต๋๋ค: |
|||
|
|||
```Python hl_lines="13" |
|||
{!../../../docs_src/query_params_str_validations/tutorial008.py!} |
|||
``` |
|||
|
|||
## ๋ณ์นญ ๋งค๊ฐ๋ณ์ |
|||
|
|||
๋งค๊ฐ๋ณ์๊ฐ `item-query`์ด๊ธธ ์ํ๋ค๊ณ ๊ฐ์ ํด ๋ด
์๋ค. |
|||
|
|||
๋ง์น ๋ค์๊ณผ ๊ฐ์ต๋๋ค: |
|||
|
|||
``` |
|||
http://127.0.0.1:8000/items/?item-query=foobaritems |
|||
``` |
|||
|
|||
๊ทธ๋ฌ๋ `item-query`์ ์ ํจํ ํ์ด์ฌ ๋ณ์ ์ด๋ฆ์ด ์๋๋๋ค. |
|||
|
|||
๊ฐ์ฅ ๊ฐ๊น์ด ๊ฒ์ `item_query`์ผ ๊ฒ๋๋ค. |
|||
|
|||
ํ์ง๋ง ์ ํํ`item-query`์ด๊ธธ ์ํฉ๋๋ค... |
|||
|
|||
์ด๋ด ๊ฒฝ์ฐ `alias`๋ฅผ ์ ์ธํ ์ ์์ผ๋ฉฐ, ํด๋น ๋ณ์นญ์ ๋งค๊ฐ๋ณ์ ๊ฐ์ ์ฐพ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค: |
|||
|
|||
```Python hl_lines="9" |
|||
{!../../../docs_src/query_params_str_validations/tutorial009.py!} |
|||
``` |
|||
|
|||
## ๋งค๊ฐ๋ณ์ ์ฌ์ฉํ์ง ์๊ฒ ํ๊ธฐ |
|||
|
|||
์ด์ ๋ ๋์ด์ ์ด ๋งค๊ฐ๋ณ์๋ฅผ ๋ง์์ ๋ค์ดํ์ง ์๋๋ค๊ณ ๊ฐ์ ํด ๋ด
์๋ค. |
|||
|
|||
์ด ๋งค๊ฐ๋ณ์๋ฅผ ์ฌ์ฉํ๋ ํด๋ผ์ด์ธํธ๊ฐ ์๊ธฐ ๋๋ฌธ์ ํ๋์์ ๋จ๊ฒจ๋ฌ์ผ ํ์ง๋ง, <abbr title="๊ตฌ์์ด๋ฉฐ, ์ฌ์ฉํ์ง ์๋ ๊ฒ์ ์ถ์ฒ">์ฌ์ฉ๋์ง ์๋๋ค(deprecated)</abbr>๊ณ ํ์คํ๊ฒ ๋ฌธ์์์ ๋ณด์ฌ์ฃผ๊ณ ์ถ์ต๋๋ค. |
|||
|
|||
๊ทธ๋ ๋ค๋ฉด `deprecated=True` ๋งค๊ฐ๋ณ์๋ฅผ `Query`๋ก ์ ๋ฌํฉ๋๋ค: |
|||
|
|||
```Python hl_lines="18" |
|||
{!../../../docs_src/query_params_str_validations/tutorial010.py!} |
|||
``` |
|||
|
|||
๋ฌธ์๊ฐ ์๋์ ๊ฐ์ด ๋ณด์ผ๊ฒ๋๋ค: |
|||
|
|||
<img src="/img/tutorial/query-params-str-validations/image01.png"> |
|||
|
|||
## ์์ฝ |
|||
|
|||
๋งค๊ฐ๋ณ์์ ๊ฒ์ฆ๊ณผ ๋ฉํ๋ฐ์ดํฐ๋ฅผ ์ถ๊ฐ ์ ์ธํ ์ ์์ต๋๋ค. |
|||
|
|||
์ ๋ค๋ฆญ ๊ฒ์ฆ๊ณผ ๋ฉํ๋ฐ์ดํฐ: |
|||
|
|||
* `alias` |
|||
* `title` |
|||
* `description` |
|||
* `deprecated` |
|||
|
|||
ํน์ ๋ฌธ์์ด ๊ฒ์ฆ: |
|||
|
|||
* `min_length` |
|||
* `max_length` |
|||
* `regex` |
|||
|
|||
์์ ์์ `str` ๊ฐ์ ๊ฒ์ฆ์ ์ด๋ป๊ฒ ์ถ๊ฐํ๋์ง ์ดํด๋ณด์์ต๋๋ค. |
|||
|
|||
์ซ์์ ๊ฐ์ ๋ค๋ฅธ ์๋ฃํ์ ๋ํ ๊ฒ์ฆ์ ์ด๋ป๊ฒ ์ ์ธํ๋์ง ํ์ธํ๋ ค๋ฉด ๋ค์ ์ฅ์ ํ์ธํ๊ธฐ ๋ฐ๋๋๋ค. |
Loadingโฆ
Reference in new issue