ํฌ๋ก์๋ ๐ฐ
2762 ๋จ์ด azuretrialhack
๋ด ์ ์ถ ๊ฐ์
Hello World๋ NewsCatcher News API๋ฅผ ํตํด ์ ์ธ๊ณ์ ํค๋๋ผ์ธ์ ๊ฐ์ ธ์ Azure Text Analytics๋ฅผ ์ฌ์ฉํ์ฌ ๊ฐ์ ๋ถ์์ ์ํํ๋ ์น ์ฑ์ ๋๋ค. ๋ฐฑ์๋๋ Azure App Services๋ฅผ ์ฌ์ฉํ์ฌ ๋ฐฐํฌํ FastAPI์ด๋ฉฐ ํ๋ฐํธ์๋๋ API์์ ๊ฐ์ ๋ถ์ ๋ด์ค๋ฅผ ๊ฐ์ ธ์ค๊ณ react-globe ํจํค์ง๋ฅผ ์ฌ์ฉํ์ฌ ์ธ๊ณ ๋ด์ค์ React + ThreeJS ๊ธ๋ก๋ธ ์๊ฐํ๋ฅผ ๋ ๋๋งํฉ๋๋ค!
Hello World(๊ฐ์ฅ ํ์ ์ ์ธ ์ด๋ฆ์ด ๋ง๋์? ๐ )์ ๋ํ ์ฌ๊ณ ๊ณผ์ ์ "๋ฐ์ดํฐ ์คํธ๋ฆฌ๋ฐ"์ ์ ์ฒด ๊ฐ๋ ์ ๋ํด ๋ฐฐ์ ์ ๋ ๋จธ๋ฆฌ์์ ์์๋์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ค์๊ฐ ๋ด์ค๋ฅผ ์๊ฐํํ๋ฉด ์ผ๋ง๋ ์ข์๊น ์๊ฐํ์ต๋๋ค. ๊ทธ๋ฌ๋ ์๊ฐํ๋ ๋ฌด์์ ์ ๋ฌํ ๊น์? ๊ทธ ๋ ์ ๋ ๊ฐ์ ๋ถ์์ ๋ํด ๋ฐฐ์ ๊ณ ์ ์ธ๊ณ ํค๋๋ผ์ธ์ ๊ฐ์ ์ ๋ถ์ํ๊ณ ์๋๋ฐฉ์์ ๋ฌด์จ ์ผ์ด ์ผ์ด๋๊ณ ์๋์ง ๋๊ตฌ๋ ์ดํดํ ์ ์๋๋ก ๋งค์ฐ ์์ํ๊ณ ์ธํฐ๋ํฐ๋ธํ ๋ฐฉ์์ผ๋ก ํ์ํ๋ ๋ฌด์ธ๊ฐ๋ฅผ ๊ตฌ์ถํ์ง ์๊ฒ ์ต๋๊น? ์ธ๊ณ. ์ด๊ฒ์ด ๋ฐ๋ก ๋ด ํ๋ก์ ํธ Hello World์ ๋๋ค!
์ค๋ ๊ธฐ๊ฐ ๊ฐ๋ฐ์๋ก ์ผํด ์จ ๊ฒ ๊ฐ์ ๊ธฐ๋ถ์ด ๋ค์ง๋ง ์ด๊ฒ์ ์ฒ์์ผ๋ก ํด์ปคํค์ ์ ์ถํ๋ ๊ฒ์ ๋๋ค! ๐ฅณ
Python๊ณผ React์ ๋ํ ๋ด ๊ธฐ์ ์ ํ ์คํธํ๊ณ ๋ด๊ฐ ์์ง ์ผ๋ง๋ ๋ชจ๋ฅด๋์ง ๊นจ๋ซ๋ ๊ฒ์ ํ์คํ ๋๋ผ์ด ๊ฒฝํ์ด์์ต๋๋ค. ์ ๋ ์ด ํ๋ก์ ํธ ํ๋์ 20์๊ฐ ๋๊ฒ ์ผ๋ค๋ ๊ฑธ ๊นจ๋ฌ์์ด์! ( ์ถ์ . ๋๋ ์ด๊ฒ์ ์ํด Wakatime์ ์ฌ์ฉํ์ต๋๋ค )
๋ฐ์ดํฐ๋ 24์๊ฐ๋ง๋ค ์ ๋ฐ์ดํธ๋์ด์ผ ํ์ง๋ง ์๋ํ๊ฒ ๋ง๋๋ ๋ฐฉ๋ฒ์ ์ ์ ์๋ ๊ฒ ๊ฐ์ต๋๋ค. ์ด ๊ธ์ ์ฝ๋ ๋ชจ๋ ๋ถ๋ค์๊ฒ ๋์์ด ๋๋ค๋ฉด ๋ํ ๋์ ์์ด ๊ธฐ์ ๊ฒ์ ๋๋ค! ์๋ ๋๊ธ๋ก ์๋ ค์ฃผ์ธ์ ๐
์ ์ถ ์นดํ ๊ณ ๋ฆฌ
์๋ฑํ ์์ผ๋ ์นด๋
GitHub์ ์ฝ๋ ๋งํฌ
sam9111 / HelloWorld-FastAPI
Hello World๋ฅผ ์ํ ๋น ๋ฅธ API
์ด๊ฒ์ NewsCatcher News API์์ ๋ด์ค๋ฅผ ๊ฐ์ ธ์ค๊ณ Azure Text Analytics๋ฅผ ์ฌ์ฉํ์ฌ ์ด์ ๋ํ ๊ฐ์ ๋ถ์์ ์ํํ๋ HelloWorld ์น์ฑ์ฉ FastAPI ๋ฐฑ์๋์
๋๋ค.
์ ๊ฐ
์ด API๋ Azure App Services๋ฅผ ์ฌ์ฉํ์ฌ ๋ฐฐํฌ๋์์ผ๋ฉฐ ์ฌ๊ธฐ์์ ์ฐพ์ ์ ์์ต๋๋ค.
https://hello-world-fastapi.azurewebsites.net/
API ์ฐธ์กฐ
23์๊ฐ๋ง๋ค ๊ฐ์ ธ์จ ๋ชจ๋ ๋ด์ค ๋ฐ๊ธฐ
GET /api/news
ํ
์คํธ ๋ถ์์ ์ฌ์ฉํ์ฌ ์ฒ๋ฆฌ๋ ๋ชจ๋ ๋ฐ์ดํฐ ๊ฐ์ ธ์ค๊ธฐ
GET /api/data
ํ๋ฐํธ ์๋์์ ๋ง์ปค๋ก ๋ ๋๋ง๋๋ ๋ชจ๋ ํฌ์ธํธ ๊ฐ์ฒด ๊ฐ์ ธ์ค๊ธฐ
GET /api/points
ํ๊ฒฝ ๋ณ์
์ด ํ๋ก์ ํธ๋ฅผ ์คํํ๋ ค๋ฉด ๋ค์ ํ๊ฒฝ ๋ณ์๋ฅผ .env ํ์ผ์ ์ถ๊ฐํด์ผ ํฉ๋๋ค.API_KEY
NewsCatcherAPI ํคAZURE_API_KEY
Azure Text Analytics Service์ ๋ํ ๊ตฌ๋
ํคENDPOINT
์ ์๋น์ค์ ์๋ํฌ์ธํธ
๋ก์ปฌ์์ ์คํ
ํ๋ก์ ํธ ๋ณต์
git clone https://github.com/sam9111/HelloWorld-FastAPI
ํ๋ก์ ํธ ๋๋ ํ ๋ฆฌ๋ก ์ด๋
cd HelloWorld-FastAPI
์ค์น ์๊ตฌ ์ฌํญ
pip install -r requirements.txt
์๋ฒ ์์
uvicorn main:app --host 0.0.0.0 --reload
โฆ
View on GitHub
๋ฐ๋ชจ
Here is a demo video for my project!
Reference
์ด ๋ฌธ์ ์ ๊ดํ์ฌ(ํฌ๋ก์๋ ๐ฐ), ์ฐ๋ฆฌ๋ ์ด๊ณณ์์ ๋ ๋ง์ ์๋ฃ๋ฅผ ๋ฐ๊ฒฌํ๊ณ ๋งํฌ๋ฅผ ํด๋ฆญํ์ฌ ๋ณด์๋ค
https://dev.to/sam9111/hello-world-2d9i
ํ
์คํธ๋ฅผ ์์ ๋กญ๊ฒ ๊ณต์ ํ๊ฑฐ๋ ๋ณต์ฌํ ์ ์์ต๋๋ค.ํ์ง๋ง ์ด ๋ฌธ์์ URL์ ์ฐธ์กฐ URL๋ก ๋จ๊ฒจ ๋์ญ์์ค.
์ฐ์ํ ๊ฐ๋ฐ์ ์ฝํ
์ธ ๋ฐ๊ฒฌ์ ์ ๋
(Collection and Share based on the CC Protocol.)
GET /api/news
GET /api/data
GET /api/points
Reference
์ด ๋ฌธ์ ์ ๊ดํ์ฌ(ํฌ๋ก์๋ ๐ฐ), ์ฐ๋ฆฌ๋ ์ด๊ณณ์์ ๋ ๋ง์ ์๋ฃ๋ฅผ ๋ฐ๊ฒฌํ๊ณ ๋งํฌ๋ฅผ ํด๋ฆญํ์ฌ ๋ณด์๋ค https://dev.to/sam9111/hello-world-2d9iํ ์คํธ๋ฅผ ์์ ๋กญ๊ฒ ๊ณต์ ํ๊ฑฐ๋ ๋ณต์ฌํ ์ ์์ต๋๋ค.ํ์ง๋ง ์ด ๋ฌธ์์ URL์ ์ฐธ์กฐ URL๋ก ๋จ๊ฒจ ๋์ญ์์ค.
์ฐ์ํ ๊ฐ๋ฐ์ ์ฝํ ์ธ ๋ฐ๊ฒฌ์ ์ ๋ (Collection and Share based on the CC Protocol.)
์ข์ ์นํ์ด์ง ์ฆ๊ฒจ์ฐพ๊ธฐ
๊ฐ๋ฐ์ ์ฐ์ ์ฌ์ดํธ ์์ง
๊ฐ๋ฐ์๊ฐ ์์์ผ ํ ํ์ ์ฌ์ดํธ 100์ ์ถ์ฒ ์ฐ๋ฆฌ๋ ๋น์ ์ ์ํด 100๊ฐ์ ์์ฃผ ์ฌ์ฉํ๋ ๊ฐ๋ฐ์ ํ์ต ์ฌ์ดํธ๋ฅผ ์ ๋ฆฌํ์ต๋๋ค