- Today
- Total
hye-log
[๋ถ์คํธ์บ ํ AI Tech]WEEK 17_DAY 78 ๋ณธ๋ฌธ
๐ ๊ฐ๋ณํ์ต
[3-2] FastAPI 2
1. FastAPI ๊ธฐ๋ณธ ์ง์
1) Path Parameter
(1) ID๊ฐ 402์ธ ์ฌ์ฉ์ ์ ๋ณด๋ฅผ ๊ฐ์ ธ์ค๊ณ ์ถ์ ๊ฒฝ์ฐ
- /users/402
- ์๋ฒ์ 402๋ผ๋ ๊ฐ์ ์ ๋ฌํ๊ณ ๋ณ์๋ก ์ฌ์ฉ
(2) Path๋ก ๋๊ธด ๊ฐ์ด ์์ผ๋ฉด -> 404 Error ๋ฐ์
(3) Resource๋ฅผ ์๋ณํด์ผ ํ๋ ๊ฒฝ์ฐ
(4) ์ค์ต
- 02_path_parameter.py ์์ฑ
- /users/1 ์ ๊ทผ
- console log๋ก ํ์ธ
2) Query Parameter
(1) ID๊ฐ 402์ธ ์ฌ์ฉ์ ์ ๋ณด๋ฅผ ๊ฐ์ ธ์ค๊ณ ์ถ์ ๊ฒฝ์ฐ
- /users?id=402
- API ๋ค์ ์ ๋ ฅ ๋ฐ์ดํฐ(Key, Value ์)๋ฅผ ํจ๊ป ์ ๊ณตํ๋ ๋ฐฉ์์ผ๋ก ์ฌ์ฉ
(2) Query์ ํด๋นํ๋ ๋ฐ์ดํฐ๊ฐ ์์ผ๋ฉด -> ๋น ๋ฆฌ์คํธ ๋์ด -> error handing ํ์
(3) ์ ๋ ฌ, ํํฐ๋ง์ ํด์ผ ํ๋ ๊ฒฝ์ฐ
(4) ์ค์ต
- 03_query_parameter.py ์์ฑ
- /items ์ ๊ทผ
- /items/?skip=0&limit=1
- /items/?skip=20
- console log๋ก ํ์ธ
items ๋ค์ ์ฌ๋์(/)๋ฅผ ๋ถ์ด์ง ์๊ณ ๋ฐ๋ก query ๋ฌธ์ ์์ฑํ ๊ฒฝ์ฐ ์ฌ๋์๋ฅผ ๋ถ์ธ ์ฃผ์๋ก redirect ๋๋ค
3) Optional Parameter
(1) ํน์ ํ๋ผ๋ฏธํฐ๋ฅผ Optional(์ ํ์ )์ผ๋ก ํ๊ณ ์ถ์ ๊ฒฝ์ฐ
(2) typing ๋ชจ๋์ Optional ์ฌ์ฉ
(3) ์ค์ต
- 04_optional_parameter.py
- /items/1 ๋ก ์ ๊ทผ
- /items/1?q=boostcamp-ai-tech ๋ก ์ ๊ทผ
4) Request Body
(1) ํด๋ผ์ด์ธํธ์์ API๋ก ๋ฐ์ดํฐ๋ฅผ ๋ณด๋ผ ๋
- Client => API : Request Body
- API => Client : Response Body
(2) Request Body์ ๋ฐ์ดํฐ๋ฅผ ๋ณด๋ด๊ณ ์ถ๋ค๋ฉด POST method ์ฌ์ฉ
- URL์ GET method๋ก ์ ๋ฌ
(3) ์ค์ต
- 05_request_body.py ์์ฑ
- /docs ์์ request body ์คํ => Code 200 ์ ์ ์๋
- tax์ float์ด ์๋ string์ ์ ๋ ฅํ ๊ฒฝ์ฐ => Code 422 ์ค๋ฅ ๋ฐ์ (Validation Check)
5) Response Body
(1) API์ Response๋ฅผ ํด๋ผ์ด์ธํธ๋ก ๋ณด๋ผ ๋
- Client => API : Request Body
- API => Client : Response Body
(2) Decorator์ response_model ์ธ์๋ก ์ฃผ์
(3) @app.post
- Output data๋ฅผ ์ ์์ ๋ง๊ฒ ๋ณํ
- ๋ฐ์ดํฐ Validation
- Response์ ๋ํ Json Schema ์ถ๊ฐ
- ์๋์ผ๋ก ๋ฌธ์ํ
(3) ์ค์ต
- 06_response_body.py ์์ฑ
- /docs ์์ ์คํํ๋ฉด Request body์ Response body๊ฐ ๋ค๋ฅธ ๊ฒ์ ํ์ธํ ์ ์์
6) Form, File
(1) Form(์ ๋ ฅ) ํํ๋ก ๋ฐ๊ณ ์ถ์ ๊ฒฝ์ฐ
- python-multipart ์ค์น ํ์
(2) Request์ Form data์์ ๊ฐ์ ๊ฐ์ ธ์ด
(3) Python ellipsis : ํ์ ์์(Required)๋ฅผ ์๋ฏธ
- Form(...)
(4) ์ค์ต
- 07_form.py, login_form.html ์ถ๊ฐ
- /login ์ผ๋ก ์ด๋ํ์ ๋ login form ์ด ๋์ด
- ์ ์ถํ username์ด ํ๋ฉด์ ํ์๋จ
(5) File์ ์ ๋ก๋ํ๊ณ ์ถ์ ๊ฒฝ์ฐ
- python-multipart ์ค์น ํ์
(6) ์ค์ต
- 08_file.py ๋ง๋ค๊ธฐ
- ํ์ผ ์ ํ๊ณผ ์ ์ถ ๊ฐ๋ฅ
๐ ์ค๋์ ํ๊ณ
์ค์ ๋ฐ์ผ๋ฆฌ ์คํฌ๋ผ ๋๋ ๋ฑํ ํฐ ์ด์๋ ์์์..(ใ ใ ) mmsegmentation ์ด์ฉํด์ ํ์ตํ ๊ฑฐ๋ผ annotation ์ด๋ฏธ์ง ๋ง๋๋๋ฐ ์๊ฐ์ด 6์๊ฐ์ด๋ ๊ฑธ๋ฆฐ๋ค.... ์ด๋ฏธ์ง ๋ง๋๋ ๋์ ๋ค๋ฅธ ์์ ์ ํ ์ ์์ผ๋ ๊ฐ์ ๋ฃ๊ธฐ..๋ ์๊ฐ๋ณด๋ค ์ฝ์ง ์๋ค... ์คํ์๋ ํฌํธํด๋ฆฌ์ค ํน๊ฐ ๋ค์๋๋ฐ ํ์คํ ๊ธฐ์ ์์ ์๊ตฌํ๋ ๋ฐ์ ๋ง์ถ ๋ง์ถคํ ์ด๋ ฅ์์ ์๊ธฐ์๊ฐ์๋ฅผ ์์ฑํ๋ ๊ฒ ์ค์ํ ๊ฒ ๊ฐ๋ค. ํผ์ด์ธ์ ๋์๋ ํ์ฌ ์งํ ์ํฉ ๊ณต์ + ๋ช ๊ฐ์ง ์ด์๋ค์ ๋ํด์ ๋ ผ์ํ๋ค. ์๋ฌด๋๋ ์ค๊ฐ ํผ๋๋ฐฑ์ด ์ผ๋ง ๋จ์ง ์์์ ์ด๋ฒ ์ฃผ ๋ด๋ก ๋ชจ๋ธ ํ์ต + ๋ค์ ์ฃผ์๋ ์๋ฒ ๊ตฌ์ถํ๋ฉด์ ๋ชจ๋ธ upgrade ํ๋ ๋ฐฉํฅ์ผ๋ก ์ด์ผ๊ธฐํ๋ค(!!!)
'Boostcourse > AI Tech 4๊ธฐ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ถ์คํธ์บ ํ AI Tech]WEEK 17_DAY 80 (0) | 2023.01.14 |
---|---|
[๋ถ์คํธ์บ ํ AI Tech]WEEK 17_DAY 79 (0) | 2023.01.12 |
[๋ถ์คํธ์บ ํ AI Tech]WEEK 17_DAY 77 (0) | 2023.01.11 |
[๋ถ์คํธ์บ ํ AI Tech]WEEK 17_DAY 76 (0) | 2023.01.10 |
[๋ถ์คํธ์บ ํ AI Tech]WEEK 16_DAY 75 (0) | 2023.01.08 |