rupring v0.4.0
https://docs.rs/rupring/latest/rupring/
https://github.com/myyrakle/rupring
๊ฐ์ฅ ํฐ ๋ณ๊ฒฝ์ฌํญ์ ๋ฏธ๋ค์จ์ด๋ค.
1. Route ํจ์ ์๊ทธ๋์ฒ ๋ณ๊ฒฝ
๋ฏธ๋ค์จ์ด ๋์์ธ์ ๊ณ ๋ คํด์ ํจ์ ํํ๋ฅผ ๋ณ๊ฒฝํ๋ค.
๊ธฐ์กด๋๋ก ๊ทธ๋ฅ ๊ทธ๋๊ทธ๋ Response๋ฅผ ์๋ก ๋ง๋ค์ด์ ๋ฐํํด๋ ๋์ง๋ง

๋๋ฒ์งธ ์ธ์๋ก Response๋ฅผ ๋ฐ์์์ ์ฌ์ฉํด๋ ๋๋ค.
์ธ์๋ก ๋์ด์ค๋ Response๋ ๋ฏธ๋ค์จ์ด๋ฅผ ํตํด์ ์์๋ฐ์ ๊ฐ์ผ ์๋ ์๊ณ , ๊ทธ๊ฒ ์๋๋ผ๋ฉด ๊ทธ๋ฅ ๋ํดํธ๊ฐ์ด๋ค.
2. Panic ํธ๋ค๋ง
์ด์ Route์์ ํจ๋์ ํฐ๋จ๋ ค๋ ๊ทธ๋ฅ ์๋ต์ผ๋ก 500 ๋์ง๊ณ ๋ง๊ฒ๋ ๊ตฌ์ฑํด๋๋ค.
3. Response ์ฌ์ฉ ํํ ๋ณ๊ฒฝ
์ด์ ์ข๋ ์ ๋ฆฌ๋ ํํ๋ก response๋ฅผ ์์ฑํ๊ฑฐ๋ ์กฐ์ํด์ ์์๋ ์ ์๋ค.
์ด๋ฐ ๋๋์ด๋ค.
json๋ ๋ฐ๋ก ์ ์ ์๋ค.
serde Serialize๋ง ๊ตฌํํ๋ฉด ๋๋ค.


4. ๋ฏธ๋ค์จ์ด ์ถ๊ฐ
๋ฏธ๋ค์จ์ด ์์คํ ์ด ์ถ๊ฐ๋์๋ค.
๋ง์ฝ ๋ก๊ทธ๋ง ์ฐ๋ ๊ฐ๋จํ ๋ฏธ๋ค์จ์ด๋ฅผ ์ ์ํ๋ค๋ฉด, ์ด๋ ๊ฒ ๋ง๋ค ์ ์๋ค.
์ฌ๊ธฐ์ next ํจ์๋ฅผ ํตํด ๋ฐํํ๋ฉด ๋ค์ ๋ฏธ๋ค์จ์ด๋ route ํจ์๋ก request์ response๊ฐ ์ ๋ฌ์ด ๋๊ฒ ๋๋ค.
next ํจ์๋ฅผ ์ฐ์ง ์๊ณ ๋ฐ๋ก ๋ฐํํ๋ฉด ๋ค์ ๋ฏธ๋ค์จ์ด๋ route ํจ์๊น์ง ๊ฐ์ง ์๊ณ ๋ฐ๋ก ์๋ต์ ๋ฐํํ๋ค.
๋ฏธ๋ค์จ์ด๋ Module์ด๋ Controller ๋จ์์ ๋ฑ๋กํ ์ ์๋ค. route ๋จ์์๋ ๋ฑ๋กํ ์ ์๊ฒ ํ๊ณ ์ถ์๋ฐ, ๊ทธ๊ฑด ๊ตฌ์กฐ๋ฅผ ๊ณ ๋ฏผ์ค์ด๋ค.

๋ชจ๋์ ๋ฏธ๋ค์จ์ด๋ฅผ ๋ฑ๋กํ๋ฉด, ๊ทธ ๋ชจ๋์ ๋ฑ๋ก๋ ์ปจํธ๋กค๋ฌ์ ๋ชจ๋ route ํจ์์ ์ ์ฉ์ด ๋๋ค.
๋ํด์, ๋ชจ๋์ ๋ฑ๋ก๋ ์์ ๋ชจ๋๋ค์๋ ์ฌ๊ท์ ์ผ๋ก ์ ๋ถ ์ ์ฉ์ด ๋๋ค.
์ปจํธ๋กค๋ฌ์ ๋ฏธ๋ค์จ์ด๋ฅผ ๋ฑ๋กํ๋ฉด ๊ทธ ์ปจํธ๋กค๋ฌ์๋ง ๋ฑ๋ก๋ ๋ชจ๋ route ํจ์์ ์ ์ฉ์ด ๋๋ค.
ํ๋์ route ํจ์์ ๋ํด์ ์ฌ๋ฌ๊ฐ์ ๋ฏธ๋ค์จ์ด๊ฐ ์ ์ฉ๋๊ณ ์๋ ์ํ๋ผ๋ฉด, ์๋์ ๊ฐ์ ์ฐ์ ์์๋ฅผ ๋ฐ๋ผ ์์๋๋ก ์ฒ๋ฆฌ๊ฐ ๋๋ค.
-
๋ชจ๋๊ณผ ์ปจํธ๋กค๋ฌ ๋ฏธ๋ค์จ์ด๊ฐ ๋์์ ์๋ค๋ฉด, ๋ชจ๋ ๋ฏธ๋ค์จ์ด๊ฐ ๋จผ์ ์คํ๋๋ค.
-
๋ถ๋ชจ ๋ชจ๋์ ๋ฏธ๋ค์จ์ด์ ์์ ๋ชจ๋์ ๋ฏธ๋ค์จ์ด๊ฐ ๋์์ ์๋ค๋ฉด, ๋ถ๋ชจ ๋ชจ๋์ ๋ฏธ๋ค์จ์ด๊ฐ ๋จผ์ ์คํ๋๋ค.
-
๊ฐ์ ๋ ๋ฒจ์ ๋ฏธ๋ค์จ์ด๊ฐ ์ฌ๋ฌ๊ฐ ์๋ค๋ฉด, middlewares ํ๋ผ๋ฏธํฐ ๋ฐฐ์ด์ ์ ์๋ ์์๋๋ก ์คํ๋๋ค.