committed by
GitHub
2 changed files with 91 additions and 0 deletions
@ -0,0 +1,90 @@ |
|||
# ํค๋ ๋งค๊ฐ๋ณ์ |
|||
|
|||
ํค๋ ๋งค๊ฐ๋ณ์๋ฅผ `Query`, `Path` ๊ทธ๋ฆฌ๊ณ `Cookie` ๋งค๊ฐ๋ณ์๋ค๊ณผ ๊ฐ์ ๋ฐฉ์์ผ๋ก ์ ์ํ ์ ์์ต๋๋ค. |
|||
|
|||
## `Header` ์ํฌํธ |
|||
|
|||
๋จผ์ `Header`๋ฅผ ์ํฌํธํฉ๋๋ค: |
|||
|
|||
```Python hl_lines="3" |
|||
{!../../../docs_src/header_params/tutorial001.py!} |
|||
``` |
|||
|
|||
## `Header` ๋งค๊ฐ๋ณ์ ์ ์ธ |
|||
|
|||
`Path`, `Query` ๊ทธ๋ฆฌ๊ณ `Cookie`๋ฅผ ์ฌ์ฉํ ๋์ผํ ๊ตฌ์กฐ๋ฅผ ์ด์ฉํ์ฌ ํค๋ ๋งค๊ฐ๋ณ์๋ฅผ ์ ์ธํฉ๋๋ค. |
|||
|
|||
์ฒซ ๋ฒ์งธ ๊ฐ์ ๊ธฐ๋ณธ๊ฐ์ด๋ฉฐ, ์ถ๊ฐ ๊ฒ์ฆ์ด๋ ์ด๋
ธํ
์ด์
๋งค๊ฐ๋ณ์ ๋ชจ๋ ์ ๋ฌํ ์ ์์ต๋๋ค: |
|||
|
|||
```Python hl_lines="9" |
|||
{!../../../docs_src/header_params/tutorial001.py!} |
|||
``` |
|||
|
|||
!!! note "๊ธฐ์ ์ธ๋ถ์ฌํญ" |
|||
`Header`๋ `Path`, `Query` ๋ฐ `Cookie`์ "์๋งค"ํด๋์ค์
๋๋ค. ์ด ์ญ์ ๋์ผํ ๊ณตํต `Param` ํด๋์ค๋ฅผ ์์ํฉ๋๋ค. |
|||
|
|||
`Query`, `Path`, `Header` ๊ทธ๋ฆฌ๊ณ ๋ค๋ฅธ ๊ฒ๋ค์ `fastapi`์์ ์ํฌํธ ํ ๋, ์ด๋ค์ ์ค์ ๋ก ํน๋ณํ ํด๋์ค๋ฅผ ๋ฐํํ๋ ํจ์์์ ๊ธฐ์ตํ์ธ์. |
|||
|
|||
!!! info "์ ๋ณด" |
|||
ํค๋๋ฅผ ์ ์ธํ๊ธฐ ์ํด์ `Header`๋ฅผ ์ฌ์ฉํด์ผ ํฉ๋๋ค. ๊ทธ๋ ์ง ์์ผ๋ฉด ํด๋น ๋งค๊ฐ๋ณ์๋ฅผ ์ฟผ๋ฆฌ ๋งค๊ฐ๋ณ์๋ก ํด์ํ๊ธฐ ๋๋ฌธ์
๋๋ค. |
|||
|
|||
## ์๋ ๋ณํ |
|||
|
|||
`Header`๋ `Path`, `Query` ๊ทธ๋ฆฌ๊ณ `Cookie`๊ฐ ์ ๊ณตํ๋ ๊ฒ ์ธ์ ๊ธฐ๋ฅ์ด ์กฐ๊ธ ๋ ์์ต๋๋ค. |
|||
|
|||
๋๋ถ๋ถ์ ํ์ค ํค๋๋ "๋ง์ด๋์ค ๊ธฐํธ" (`-`)๋ผ๊ณ ๋ ํ๋ "ํ์ดํ" ๋ฌธ์๋ก ๊ตฌ๋ถ๋ฉ๋๋ค. |
|||
|
|||
๊ทธ๋ฌ๋ ํ์ด์ฌ์์ `user-agent`์ ๊ฐ์ ํํ์ ๋ณ์๋ ์ ํจํ์ง ์์ต๋๋ค. |
|||
|
|||
๋ฐ๋ผ์ `Header`๋ ๊ธฐ๋ณธ์ ์ผ๋ก ๋งค๊ฐ๋ณ์ ์ด๋ฆ์ ์ธ๋์ค์ฝ์ด(`_`)์์ ํ์ดํ(`-`)์ผ๋ก ๋ณํํ์ฌ ํค๋๋ฅผ ์ถ์ถํ๊ณ ๊ธฐ๋กํฉ๋๋ค. |
|||
|
|||
๋ํ HTTP ํค๋๋ ๋์๋ฌธ์๋ฅผ ๊ตฌ๋ถํ์ง ์์ผ๋ฏ๋ก "snake_case"๋ก ์๋ ค์ง ํ์ค ํ์ด์ฌ ์คํ์ผ๋ก ์ ์ธํ ์ ์์ต๋๋ค. |
|||
|
|||
๋ฐ๋ผ์, `User_Agent` ๋ฑ๊ณผ ๊ฐ์ด ์ฒซ ๋ฌธ์๋ฅผ ๋๋ฌธ์ํํ ํ์์์ด ํ์ด์ฌ ์ฝ๋์์์ฒ๋ผ `user_agent`๋ก ์ฌ์ฉํฉ๋๋ค. |
|||
|
|||
๋ง์ฝ ์ธ๋์ค์ฝ์ด๋ฅผ ํ์ดํ์ผ๋ก ์๋ ๋ณํ์ ๋นํ์ฑํํด์ผ ํ ์ด๋ค ์ด์ ๊ฐ ์๋ค๋ฉด, `Header`์ `convert_underscores` ๋งค๊ฐ๋ณ์๋ฅผ `False`๋ก ์ค์ ํ์ญ์์ค: |
|||
|
|||
```Python hl_lines="10" |
|||
{!../../../docs_src/header_params/tutorial002.py!} |
|||
``` |
|||
|
|||
!!! warning "๊ฒฝ๊ณ " |
|||
`convert_underscore`๋ฅผ `False`๋ก ์ค์ ํ๊ธฐ ์ ์, ์ด๋ค HTTP ํ๋ก์๋ค๊ณผ ์๋ฒ๋ค์ ์ธ๋์ค์ฝ์ด๊ฐ ํฌํจ๋ ํค๋ ์ฌ์ฉ์ ํ๋ฝํ์ง ์๋๋ค๋ ๊ฒ์ ๋ช
์ฌํ์ญ์์ค. |
|||
|
|||
## ์ค๋ณต ํค๋ |
|||
|
|||
์ค๋ณต ํค๋๋ค์ ์์ ํ ์ ์์ต๋๋ค. ์ฆ, ๋ค์ค๊ฐ์ ๊ฐ๋ ๋์ผํ ํค๋๋ฅผ ๋ปํฉ๋๋ค. |
|||
|
|||
ํ์
์ ์์์ ๋ฆฌ์คํธ๋ฅผ ์ฌ์ฉํ์ฌ ์ด๋ฌํ ์ผ์ด์ค๋ฅผ ์ ์ํ ์ ์์ต๋๋ค. |
|||
|
|||
์ค๋ณต ํค๋์ ๋ชจ๋ ๊ฐ์ ํ์ด์ฌ `list`๋ก ์์ ํฉ๋๋ค. |
|||
|
|||
์๋ฅผ ๋ค์ด, ๋ ๋ฒ ์ด์ ๋ํ๋ ์ ์๋ `X-Token`ํค๋๋ฅผ ์ ์ธํ๋ ค๋ฉด, ๋ค์๊ณผ ๊ฐ์ด ์์ฑํฉ๋๋ค: |
|||
|
|||
```Python hl_lines="9" |
|||
{!../../../docs_src/header_params/tutorial003.py!} |
|||
``` |
|||
|
|||
๋ค์๊ณผ ๊ฐ์ ๋ ๊ฐ์ HTTP ํค๋๋ฅผ ์ ์กํ์ฌ ํด๋น *๊ฒฝ๋ก* ์ ํต์ ํ ๊ฒฝ์ฐ: |
|||
|
|||
``` |
|||
X-Token: foo |
|||
X-Token: bar |
|||
``` |
|||
|
|||
์๋ต์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค: |
|||
|
|||
```JSON |
|||
{ |
|||
"X-Token values": [ |
|||
"bar", |
|||
"foo" |
|||
] |
|||
} |
|||
``` |
|||
|
|||
## ์์ฝ |
|||
|
|||
`Header`๋ `Query`, `Path`, `Cookie`์ ๋์ผํ ํจํด์ ์ฌ์ฉํ์ฌ ์ ์ธํฉ๋๋ค. |
|||
|
|||
๋ณ์์ ์ธ๋์ค์ฝ์ด๋ฅผ ๊ฑฑ์ ํ์ง ๋ง์ญ์์ค, **FastAPI**๊ฐ ๋ณ์๋ฅผ ๋ณํํ ๊ฒ์
๋๋ค. |
Loadingโฆ
Reference in new issue