ํด๋ ์ ํ
F1
ํด๋ฆญ, Spring Initializr: Create a Maven Project
ํด๋ฆญ >>
2.6.4 version ํด๋ฆญ, ๊ณ์ enter, Jar ํ์ผ, version 8 ์ ํ
Search for dependencies
์์ Spring Web
์ ํ
Selected 1 dependency์์ Enter
Generate into this folder
ํด๋ฆญ
Open ํด๋ฆญ
์๋ก์ด VS code ์ฐฝ ์ด๋ฆฌ๋ฉด ๋!
์คํ์ Oracle๊ณผ Port๋ฒํธ๊ฐ ์ถฉ๋ํ ์ ์๊ธฐ ๋๋ฌธ์
application.properties
์ PORT๋ฅผ ์ค์ ํด์ค์ผํ๋ค.
์ฐธ๊ณ ํด๋ ์ข์ ๊ฒ ๊ฐ์ ์ฌ์ดํธ : https://central-it.tistory.com/47
server.port=8090
์
๋ ฅํ๋ฉด localhost:8090
์ผ๋ก ํฌํธ ๋ฒํธ๊ฐ ๋ณ๊ฒฝ๋๋ค
rest - ํด๋ ๋ช
: controller
์์ฑ
controller - ํ์ผ ๋ช
:Controller.java
์์ฑ
@RestController
์
๋ ฅ
์๋์ผ๋ก import org.springframework.web.bind.annotation.RestController;
import ๋๋ค.
@RestController
=@Controller
+@ResponseBody
@Controller
= @Component์ ๋์ผ, bean ๊ฐ์ฒด๋ก ๋ฑ๋กํ๋ค
@ResponseBody
= JSON ๋ฐ์ดํฐ ๋ฐํ์ฉ Annotation
์ด 2๊ฐ์ง ์ญํ ์ ํ ๋ฒ์ ์ํํ๋ Annotation์ด @RestController
์ด๋ค.
@RequestMapping("/api/v1")
๋ฅผ ์
๋ ฅํ๋ฉด localhost:8090/api/vi ๊ฒฝ๋ก์ ํด๋นํ๋ ์ฝ๋๋ฅผ ์์ฑํ๋ ๊ฒ์ด๋ค.
@RequestMapping
๋์ ์ฌ์ฉํ ์ ์๋ Annotation์ ์๋ ค์ค๋ค.
GET ๋ฉ์๋๋ฅผ ์ฌ์ฉํ ๋๋, GetMapping()
์ ์ฌ์ฉํ๋ค.
์ฝ๋ ์์ฑ
์คํ ๊ฒฐ๊ณผ๋ chrome์ Talend API Tester
์ฌ์ฉํด ๋ณผ ๊ฒ์ด๋ค.
ํผ์ฆ ๋ชจ์
ํด๋ฆญ, ํ์ฅ ํ๋ก๊ทธ๋จ ๊ด๋ฆฌ
ํด๋ฆญ
์ผ์ชฝ ํ๋จ์ Chrome ์น์คํ ์ด ์ด๊ธฐ
ํด๋ฆญ
talend API Tester
๊ฒ์
Chrome์ ์ถ๊ฐ
ํด๋ฆญ
ํผ์ฆ๋ชจ์ - Talend API Tester
ํด๋ฆญ
Use Talend API Tester
ํด๋ฆญ
RestApplication.java๋ฅผ Run(F5)ํด์ ์๋ฒ ํค๊ธฐ
http://localhost:8090/api/v1/book
์ ์ ํ, Send ํด๋ฆญ
[๊ฒฐ๊ณผ]
Body์ The Old Man and Sea
์ถ๋ ฅ๋๋ค.
// @RequestParam()์ ํ์ฉํ GET ์์ฒญ
@GetMapping("/book/req")
public String getBookWithParam(
@RequestParam String name,
@RequestParam String author
){
return String.format("%s ์ ์ ์ %s", name, author);
}
Controller.java์ ์ฝ๋ ์ถ๊ฐ
์์ %s
๋ name
, ๋ค์ %s
๋ author
์ ๋งค์นญ๋๋ค.
QUERY PARAMETERS
ํด๋ฆญ, Add query parameter
ํด๋ฆญ
name, author ์ ๋ ฅํ, ์๋ฒ ์ฌ์คํ
Send ํด๋ฆญ ์ ์,
@GetMapping("/book/req")
์ด๋ฏ๋ก book/req? ์ธ์ง ํ์ธํด์ผํ๋ค.
http://localhost:8090/api/v1/book/req?name=๊น๋นต๋นต์ ์ผ์&author=๊น๋นต๋นต
์ธ์ง ํ์ธํ Send ํด๋ฆญ
Body๋ถ๋ถ์ ๊น๋นต๋นต์ ์ผ์์ ์ ์ ๊น๋นต๋นต
์ด ์ ๋๋ก ์ถ๋ ฅ๋์๋ค!