Browse Source
Co-authored-by: weekwith.me <[email protected]> Co-authored-by: Sebastiรกn Ramรญrez <[email protected]>pull/4272/head
committed by
GitHub
2 changed files with 90 additions and 0 deletions
@ -0,0 +1,89 @@ |
|||
# ์๋ต ์ํ ์ฝ๋ |
|||
|
|||
์๋ต ๋ชจ๋ธ๊ณผ ๊ฐ์ ๋ฐฉ๋ฒ์ผ๋ก, ์ด๋ค *๊ฒฝ๋ก ์๋*์ด๋ `status_code` ๋งค๊ฐ๋ณ์๋ฅผ ์ฌ์ฉํ์ฌ ์๋ต์ ๋ํ HTTP ์ํ ์ฝ๋๋ฅผ ์ ์ธํ ์ ์์ต๋๋ค. |
|||
|
|||
* `@app.get()` |
|||
* `@app.post()` |
|||
* `@app.put()` |
|||
* `@app.delete()` |
|||
* ๊ธฐํ |
|||
|
|||
```Python hl_lines="6" |
|||
{!../../../docs_src/response_status_code/tutorial001.py!} |
|||
``` |
|||
|
|||
!!! note "์ฐธ๊ณ " |
|||
`status_code` ๋ "๋ฐ์ฝ๋ ์ดํฐ" ๋ฉ์๋(`get`, `post` ๋ฑ)์ ๋งค๊ฐ๋ณ์์
๋๋ค. ๋ชจ๋ ๋งค๊ฐ๋ณ์๋ค๊ณผ ๋ณธ๋ฌธ์ฒ๋ผ *๊ฒฝ๋ก ์๋ ํจ์*๊ฐ ์๋๋๋ค. |
|||
|
|||
`status_code` ๋งค๊ฐ๋ณ์๋ HTTP ์ํ ์ฝ๋๋ฅผ ์ซ์๋ก ์
๋ ฅ๋ฐ์ต๋๋ค. |
|||
|
|||
!!! info "์ ๋ณด" |
|||
`status_code` ๋ ํ์ด์ฌ์ `http.HTTPStatus` ์ ๊ฐ์ `IntEnum` ์ ์
๋ ฅ๋ฐ์ ์๋ ์์ต๋๋ค. |
|||
|
|||
`status_code` ๋งค๊ฐ๋ณ์๋: |
|||
|
|||
* ์๋ต์์ ํด๋น ์ํ ์ฝ๋๋ฅผ ๋ฐํํฉ๋๋ค. |
|||
* ์ํ ์ฝ๋๋ฅผ OpenAPI ์คํค๋ง(๋ฐ ์ฌ์ฉ์ ์ธํฐํ์ด์ค)์ ๋ฌธ์ํ ํฉ๋๋ค. |
|||
|
|||
<img src="https://fastapi.tiangolo.com/img/tutorial/response-status-code/image01.png"> |
|||
|
|||
!!! note "์ฐธ๊ณ " |
|||
์ด๋ค ์๋ต ์ฝ๋๋ค์ ํด๋น ์๋ต์ ๋ณธ๋ฌธ์ด ์๋ค๋ ๊ฒ์ ์๋ฏธํ๊ธฐ๋ ํฉ๋๋ค (๋ค์ ํญ๋ชฉ ์ฐธ๊ณ ). |
|||
|
|||
์ด์ ๋ฐ๋ผ FastAPI๋ ์๋ต ๋ณธ๋ฌธ์ด ์์์ ๋ช
์ํ๋ OpenAPI๋ฅผ ์์ฑํฉ๋๋ค. |
|||
|
|||
## HTTP ์ํ ์ฝ๋์ ๋ํ์ฌ |
|||
|
|||
!!! note "์ฐธ๊ณ " |
|||
๋ง์ฝ HTTP ์ํ ์ฝ๋์ ๋ํ์ฌ ์ด๋ฏธ ์๊ณ ์๋ค๋ฉด, ๋ค์ ํญ๋ชฉ์ผ๋ก ๋์ด๊ฐ์ญ์์ค. |
|||
|
|||
HTTP๋ ์ธ์๋ฆฌ์ ์ซ์ ์ํ ์ฝ๋๋ฅผ ์๋ต์ ์ผ๋ถ๋ก ์ ์กํฉ๋๋ค. |
|||
|
|||
์ด ์ํ ์ฝ๋๋ค์ ๊ฐ์๋ฅผ ์๋ณํ ์ ์๋๋ก ์ง์ ๋ ์ด๋ฆ์ด ์์ผ๋, ์ค์ํ ๊ฒ์ ์ซ์ ์ฝ๋์
๋๋ค. |
|||
|
|||
์์ฝํ์๋ฉด: |
|||
|
|||
* `**1xx**` ์ํ ์ฝ๋๋ "์ ๋ณด"์ฉ์
๋๋ค. ์ด๋ค์ ์ง์ ์ ์ผ๋ก๋ ์ ์ฌ์ฉ๋์ง๋ ์์ต๋๋ค. ์ด ์ํ ์ฝ๋๋ฅผ ๊ฐ๋ ์๋ต๋ค์ ๋ณธ๋ฌธ์ ๊ฐ์ง ์ ์์ต๋๋ค. |
|||
* `**2xx**` ์ํ ์ฝ๋๋ "์ฑ๊ณต์ ์ธ" ์๋ต์ ์ํด ์ฌ์ฉ๋ฉ๋๋ค. ๊ฐ์ฅ ๋ง์ด ์ฌ์ฉ๋๋ ์ ํ์
๋๋ค. |
|||
* `200` ์ ๋ํดํธ ์ํ ์ฝ๋๋ก, ๋ชจ๋ ๊ฒ์ด "์ฑ๊ณต์ ์"์ ์๋ฏธํฉ๋๋ค. |
|||
* ๋ค๋ฅธ ์๋ก๋ `201` "์์ฑ๋จ"์ด ์์ต๋๋ค. ์ผ๋ฐ์ ์ผ๋ก ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์๋ก์ด ๋ ์ฝ๋๋ฅผ ์์ฑํ ํ ์ฌ์ฉํฉ๋๋ค. |
|||
* ๋จ, `204` "๋ด์ฉ ์์"์ ํน๋ณํ ๊ฒฝ์ฐ์
๋๋ค. ์ด๊ฒ์ ํด๋ผ์ด์ธํธ์๊ฒ ๋ฐํํ ๋ด์ฉ์ด ์๋ ๊ฒฝ์ฐ ์ฌ์ฉํฉ๋๋ค. ๋ฐ๋ผ์ ์๋ต์ ๋ณธ๋ฌธ์ ๊ฐ์ง ์ ์์ต๋๋ค. |
|||
* `**3xx**` ์ํ ์ฝ๋๋ "๋ฆฌ๋ค์ด๋ ์
"์ฉ์
๋๋ค. ๋ณธ๋ฌธ์ ๊ฐ์ง ์ ์๋ `304` "์์ ๋์ง ์์"์ ์ ์ธํ๊ณ , ์ด ์ํ ์ฝ๋๋ฅผ ๊ฐ๋ ์๋ต์๋ ๋ณธ๋ฌธ์ด ์์ ์๋, ์์ ์๋ ์์ต๋๋ค. |
|||
* `**4xx**` ์ํ ์ฝ๋๋ "ํด๋ผ์ด์ธํธ ์ค๋ฅ" ์๋ต์ ์ํด ์ฌ์ฉ๋ฉ๋๋ค. ์ด๊ฒ์ ์๋ง ๊ฐ์ฅ ๋ง์ด ์ฌ์ฉํ๊ฒ ๋ ๋๋ฒ์งธ ์ ํ์
๋๋ค. |
|||
* ์ผ๋ก๋ก `404` ๋ "์ฐพ์ ์ ์์" ์๋ต์ ์ํด ์ฌ์ฉํฉ๋๋ค. |
|||
* ์ผ๋ฐ์ ์ธ ํด๋ผ์ด์ธํธ ์ค๋ฅ์ ๊ฒฝ์ฐ `400` ์ ์ฌ์ฉํ ์ ์์ต๋๋ค. |
|||
* `**5xx**` ์ํ ์ฝ๋๋ ์๋ฒ ์ค๋ฅ์ ์ฌ์ฉ๋ฉ๋๋ค. ์ด๊ฒ๋ค์ ์ง์ ์ฌ์ฉํ ์ผ์ ๊ฑฐ์ ์์ต๋๋ค. ์์ฉ ํ๋ก๊ทธ๋จ ์ฝ๋๋ ์๋ฒ์ ์ผ๋ถ์์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ฉด ์๋์ผ๋ก ์ด๋ค ์ํ ์ฝ๋ ์ค ํ๋๋ฅผ ๋ฐํํฉ๋๋ค. |
|||
|
|||
!!! tip "ํ" |
|||
๊ฐ๊ฐ์ ์ํ ์ฝ๋์ ์ด๋ค์ด ์๋ฏธํ๋ ๋ด์ฉ์ ๋ํด ๋ ์๊ณ ์ถ๋ค๋ฉด <a href="https://developer.mozilla.org/en-US/docs/Web/HTTP/Status" class="external-link" target="_blank"><abbr title="Mozilla Developer Network">MDN</abbr> HTTP ์ํ ์ฝ๋์ ๊ดํ ๋ฌธ์</a> ๋ฅผ ํ์ธํ์ญ์์ค. |
|||
|
|||
## ์ด๋ฆ์ ๊ธฐ์ตํ๋ ์ฌ์ด ๋ฐฉ๋ฒ |
|||
|
|||
์๊ธฐ ์์ ์ฐธ๊ณ : |
|||
|
|||
```Python hl_lines="6" |
|||
{!../../../docs_src/response_status_code/tutorial001.py!} |
|||
``` |
|||
|
|||
`201` ์ "์์ฑ๋จ"๋ฅผ ์๋ฏธํ๋ ์ํ ์ฝ๋์
๋๋ค. |
|||
|
|||
ํ์ง๋ง ๋ชจ๋ ์ํ ์ฝ๋๋ค์ด ๋ฌด์์ ์๋ฏธํ๋์ง ์ธ์ธ ํ์๋ ์์ต๋๋ค. |
|||
|
|||
`fastapi.status` ์ ํธ์ ๋ณ์๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค. |
|||
|
|||
```Python hl_lines="1 6" |
|||
{!../../../docs_src/response_status_code/tutorial002.py!} |
|||
``` |
|||
|
|||
์ด๊ฒ์ ๋จ์ํ ์์
์ ํธ๋ฆฌํ๊ฒ ํ๊ธฐ ์ํ ๊ฒ์ผ๋ก, HTTP ์ํ ์ฝ๋์ ๋์ผํ ๋ฒํธ๋ฅผ ๊ฐ๊ณ ์์ง๋ง, ์ด๋ฅผ ์ฌ์ฉํ๋ฉด ํธ์ง๊ธฐ์ ์๋์์ฑ ๊ธฐ๋ฅ์ ์ฌ์ฉํ ์ ์์ต๋๋ค: |
|||
|
|||
<img src="https://fastapi.tiangolo.com/img/tutorial/response-status-code/image02.png"> |
|||
|
|||
!!! note "๊ธฐ์ ์ ์ธ๋ถ์ฌํญ" |
|||
`from starlette import status` ์ญ์ ์ฌ์ฉํ ์ ์์ต๋๋ค. |
|||
|
|||
**FastAPI**๋ ๊ฐ๋ฐ์์ธ ๋น์ ์ ํธ์๋ฅผ ์ํด `fastapi.status` ์ ๋์ผํ `starlette.status` ๋ ์ ๊ณตํฉ๋๋ค. ํ์ง๋ง ์ด๊ฒ์ Starlette๋ก๋ถํฐ ์ง์ ์ ๊ณต๋ฉ๋๋ค. |
|||
|
|||
## ๊ธฐ๋ณธ๊ฐ ๋ณ๊ฒฝ |
|||
|
|||
์ถํ ์ฌ๊ธฐ์ ์ ์ธํ๋ ๊ธฐ๋ณธ ์ํ ์ฝ๋๊ฐ ์๋ ๋ค๋ฅธ ์ํ ์ฝ๋๋ฅผ ๋ฐํํ๋ ๋ฐฉ๋ฒ์ [์๋ จ๋ ์ฌ์ฉ์ ์ง์นจ์](https://fastapi.tiangolo.com/ko/advanced/response-change-status-code/){.internal-link target=_blank}์์ ํ์ธํ ์ ์์ต๋๋ค. |
Loadingโฆ
Reference in new issue