RestApi ๋งŒ๋“ค๊ธฐ - ์Šคํ”„๋ง ์‹œํ๋ฆฌํ‹ฐ ์„ค์ • (13)

๋‚˜๋Š” ์–ผ๋งˆ์ „ ์Šคํ”„๋ง ์‹œํ๋ฆฌํ‹ฐ๋ฅผ ์„ค์น˜ํ•˜๊ณ , ์œ ์ €๋ฅผ ๋งŒ๋“ค์–ด์„œ ์ง„ํ–‰์„ ํ•œ์ ์ด ์žˆ์—ˆ๋‹ค,. ๊ทธ๋ฆฌ๊ณ  ์˜ค๋Š˜ ํ”„๋กœ์žญํŠธ๋ฅผ ์‹คํ–‰์‹œ์ผฐ๋‹ค. ํ•˜์ง€๋งŒ ๊ฒฐ๊ณผ๋Š” ์ฐธ๋‹ดํ–ˆ๋‹ค. ๋ชจ๋“  ํ…Œ์ŠคํŠธ๊ฐ€ ํ‹€๋ ธ๋‹ค๊ณ  ๋‚˜์˜จ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ์—ˆ๋‹ค. ์ด์ƒํ–ˆ๋‹ค. ๋‚˜๋Š” ๋ถ„๋ช…... ํ•œ์ ์ด ์—†๋Š”๋ฐ.. ์•Œ๊ณ ๋ณด๋‹ˆ ์Šคํ”„๋ง ์‹œํ๋ฆฌํ‹ฐ ์ž์ฒด์—์„œ ์œ ์ €๋ฅผ ๋งŒ๋“ค๊ณ , ๊ทธ๊ฒƒ์„ ๋ชจ๋“  ํ…Œ์ŠคํŠธ ์ฝ”๋“œ์— ์ ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋ผ๊ณ  ํ–ˆ๋‹ค. ๊ทธ๋ž˜์„œ ๋‚˜์˜จ ์ƒํƒœ์ฝ”๋“œ๊ฐ€ 403 (๊ถŒํ•œ์ด ์—†๋‹ค)๊ฐ€ ๋‚˜์˜จ๊ฒƒ๋„ ๊ทธ ๋•Œ๋ฌธ์ธ๊ฒƒ ๊ฐ™๋‹ค. ๊ทธ๋Ÿฌ๋ฉด ์–ด๋–ป๊ฒŒ ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•ด์•ผ ๋ ๊นŒ? @Configuration @EnableWebSecurity public class SpringConfig extends WebSecurityConfigurerAdapter{ } ์ด๊ฑธ ์ถ”๊ฐ€ํ•˜๊ฒŒ ๋˜๋ฉด ์Šคํ”„๋ง ์‹œํ๋ฆฌํ‹ฐ์—์„œ ์ ์šฉ๋˜๋Š” ์‹œํ๋ฆฌํ‹ฐ๋Š” ๋” ์ด์ƒ ์ ..

RestApi ๋งŒ๋“ค๊ธฐ - ์Šคํ”„๋ง ์‹œํ๋ฆฌํ‹ฐ ์ ์šฉํ•˜๊ธฐ (12)

์›๋ž˜๋Š” ์Šคํ”„๋ง ์‹œํ๋ฆฌํ‹ฐ์— ๋Œ€ํ•ด ๊ณต๋ถ€ํ•˜๊ณ  ํ•˜๋ ค๋‹ค๊ฐ€ ๋„ˆ๋ฌด ์˜ค๋ž˜ ๊ฑธ๋ฆด ๊ฒƒ ๊ฐ™์•„ ์ƒ๋žตํ•˜๊ณ  ์ ์šฉํ•˜๋Š”๊ฒƒ๋ถ€ํ„ฐ ์ง„ํ–‰ํ•˜๋ ค๊ณ  ํ•œ๋‹ค. ์•„๋ฌดํŠผ ์Šคํ”„๋ง ์‹œํ๋ฆฌํ‹ฐ๋ฅผ ์ ์šฉํ•˜๋Š” ์ด์œ ๋Š” ๊ฒŒ์‹œ๊ธ€์„ ๋งŒ๋“  ์œ ์ €๋งŒ ์ˆ˜์ •์ด ๊ฐ€๋Šฅํ•˜๊ฒŒ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด ์ ์šฉํ•˜๋Š”๊ฑธ๋กœ ์•Œ๊ณ  ์žˆ๋‹ค. ์•„๋ฌดํŠผ... ์ ์šฉํ•ด๋ณด์ž. org.springframework.security.oauth.boot spring-security-oauth2-autoconfigure 2.1.10.RELEASE ์ด๊ฒƒ์„ ์ถ”๊ฐ€ํ•ด์ค˜์•ผ ์Šคํ”„๋ง ์‹œํ๋ฆฌํ‹ฐ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋œ๋‹ค. (์ด๊ธ€์€ ๋ฐฑ๊ธฐ์„ ๋‹˜ ๊ฐ•์˜๋ฅผ ๋ณด๊ณ  ์ž‘์„ฑํ•œ ๊ธ€์ด๊ธฐ๋•Œ๋ฌธ์— start.security๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.) ์ƒ๊ฐํ•ด๋ณด๋‹ˆ vo๋ฅผ ๋งŒ๋“ค์ง€ ์•Š์•˜๋‹ค. @Getter @Setter @Builder @NoArgsConstructor @AllArgs..

RestApi ๋งŒ๋“ค๊ธฐ - ์ด๋ฒคํŠธ ์ˆ˜์ • API๊ตฌํ˜„ (11)

์ด๋ฒˆ์—๋Š” ๊ฐ•์˜๋ฅผ ๋“ฃ๊ธฐ์ „์— ๋จผ์ € ์ž‘์„ฑํ•˜๊ธฐ๋กœ ํ•ด๋ณด์ž. ์ด๋ฒคํŠธ ์ˆ˜์ •์˜ ๊ฒฝ์šฐ๋Š” 1. ์ˆ˜์ •์ด ์ •์ƒ์ ์œผ๋กœ ์‹คํ–‰์ด ๋˜์—ˆ์„๋•Œ : 200 2. ์ˆ˜์ •์ด ์ž˜๋ชป๋œ ๊ฒฝ์šฐ - ๋น„์–ด์žˆ๋Š” ๊ฐ์ฒด๊ฐ€ ๋“ค์–ด์žˆ์„ ๊ฒฝ์šฐ. - ์ž˜๋ชป๋œ ๊ฐ์ฒด๊ฐ€ ๋“ค์–ด์˜ฌ ๊ฒฝ์šฐ.. - ๊ถŒํ•œ์ด ์—†๋Š” ์‚ฌ๋žŒ์ด ์ ‘๊ทผํ–ˆ์„ ๊ฒฝ์šฐ - ํŽ˜์ด์ง€๊ฐ€ ์กด์žฌํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ ์ด๋ ‡๊ฒŒ ๋“ค ์ˆ˜ ์žˆ๋Š”๋ฐ... ์†”์งํžˆ 2-3์€ ์ง€๊ธˆ๋‹น์žฅ์€ ํ•˜์ง€ ๋ชปํ•  ๊ฒƒ ๊ฐ™๋‹ค. ์™œ๋ƒํ•˜๋ฉด ์œ ์ €๋ฅผ ๊ณ ๋ คํ•˜์ง€ ์•Š์•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ํ…Œ์ŠคํŠธ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•ด๋ณด์ž. @Test void update_event() throws Exception { Delivery delivery = generateEvent(100); DeliveryDto deliveryDto = modelMapper.map(delivery, DeliveryDto.class); ..

RestApi ๋งŒ๋“ค๊ธฐ - HATEOAS (5)

HATEOAS๋ž€ ๋ฌด์—‡์ผ๊นŒ? Hypermedia as the Engine of Application State์˜ ์•ฝ์ž๋กœ ์š”์ฒญ์— ๋Œ€ํ•œ ์‘๋‹ต๊ฐ’์— ์‚ฌ์šฉ์ž๊ฐ€ ์‚ฌ์ดํŠธ๋ฅผ ๋„ค๋น„๊ฒŒ์ด์…˜ ํ•  ์ˆ˜ ์žˆ๋Š” ๋งํฌ๋“ค์„ ๋งŒ๋“ค์–ด ํฌํ•จ์‹œํ‚ฌ ์ˆ˜ ์žˆ๋„๋ก ํ•ด์ฃผ๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ผ๊ณ  ํ•œ๋‹ค. ์ด๋Ÿฌํ•œ ๊ธฐ๋Šฅ์„ ์Šคํ”„๋ง์—์„œ ์ œ๊ณตํ•˜๊ณ  ์žˆ๋‹ค. ๊ทธ๋ž˜์„œ ์Šคํ”„๋ง ํ—ค์ดํ‹ฐ์˜ค์Šค ๊ทธ๋Ÿผ ํ—ค์ดํ‹ฐ์˜ค์Šค๋Š” ์–ด๋–ค ๊ฒƒ์„ ํ•ด์ค„๊นŒ? ํฌ๊ฒŒ 2๊ฐ€์ง€ ๋ถ€๋ถ„์œผ๋กœ ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ๋‹ค. ์ฒซ ๋ฒˆ์งธ๋Š” ๋งํฌ๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•œ๋‹ค. ๋งํฌ ๋งŒ๋“œ๋Š” ๋ฐฉ๋ฒ• : linkTo(DeliveryController.class).slash(newDelivery.getId()).toUri(); ๋งํฌ๋ฅผ ๋งŒ๋“œ๋Š” ๋ฐฉ๋ฒ•์€ ์ด๊ฒƒ๋ง๊ณ ๋„ ๋งŽ์€๋ฐ, ๋Œ€ํ‘œ์ ์œผ๋กœ linkTo๋กœ ๋งŒ๋“œ๋Š” ๋ฐฉ๋ฒ•์ด ์กด์žฌํ•œ๋‹ค. lonkTo๋กœ uri๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ๊ฒŒ ๋˜..

Designed by JB FACTORY