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 ํ•จ์ˆ˜์— ๋Œ€ํ•ด์„œ ์—ฌ๋Ÿฌ๊ฐœ์˜ ๋ฏธ๋“ค์›จ์–ด๊ฐ€ ์ ์šฉ๋˜๊ณ  ์žˆ๋Š” ์ƒํƒœ๋ผ๋ฉด, ์•„๋ž˜์™€ ๊ฐ™์€ ์šฐ์„ ์ˆœ์œ„๋ฅผ ๋”ฐ๋ผ ์ˆœ์„œ๋Œ€๋กœ ์ฒ˜๋ฆฌ๊ฐ€ ๋œ๋‹ค.

  1. ๋ชจ๋“ˆ๊ณผ ์ปจํŠธ๋กค๋Ÿฌ ๋ฏธ๋“ค์›จ์–ด๊ฐ€ ๋™์‹œ์— ์žˆ๋‹ค๋ฉด, ๋ชจ๋“ˆ ๋ฏธ๋“ค์›จ์–ด๊ฐ€ ๋จผ์ € ์‹คํ–‰๋œ๋‹ค.

  2. ๋ถ€๋ชจ ๋ชจ๋“ˆ์˜ ๋ฏธ๋“ค์›จ์–ด์™€ ์ž์‹ ๋ชจ๋“ˆ์˜ ๋ฏธ๋“ค์›จ์–ด๊ฐ€ ๋™์‹œ์— ์žˆ๋‹ค๋ฉด, ๋ถ€๋ชจ ๋ชจ๋“ˆ์˜ ๋ฏธ๋“ค์›จ์–ด๊ฐ€ ๋จผ์ € ์‹คํ–‰๋œ๋‹ค.

  3. ๊ฐ™์€ ๋ ˆ๋ฒจ์˜ ๋ฏธ๋“ค์›จ์–ด๊ฐ€ ์—ฌ๋Ÿฌ๊ฐœ ์žˆ๋‹ค๋ฉด, middlewares ํŒŒ๋ผ๋ฏธํ„ฐ ๋ฐฐ์—ด์— ์ •์˜๋œ ์ˆœ์„œ๋Œ€๋กœ ์‹คํ–‰๋œ๋‹ค.