쿼리로 문자열 데이터 넘겨주기
controller 파일 작성
package back.practice.controller;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
@Controller
public class PracticeController {
@GetMapping("hello-api1")
@ResponseBody
public String helloApi1(@RequestParam("name") String name) {
return "hello query: " + name;
}
}
정적 컨텐츠로 보여주거나, mvc-템플릿 엔진 방법, 혹은 API 로 데이터를 내려주거나 세 가지 방법을 기억하시면 됩니다.
main/java/back.practice/controller 안 PracticeController 클래스 파일입니다.
여지껏 그랬던 것 처럼 @GetMapping 을 이용하여 /hello-api1 이라는 path 를 설정해주었습니다.
@ResponseBody 는 HTTP의 body 부에 해당 name 데이터를 직접 넣어주겠다는 뜻입니다. (res.body 라는 것 입니다.)
ResponseBody 덕분에 해당 파일은 뷰 파일 필요없이
바로 쿼리로 값을 넘겨주면 html 에 문자열로 리턴되는 것을 확인할 수 있습니다.
(뭐 HTML 태그 같은 게 내려가는 것이 아니라 그냥 무식하게 문자열만 내려주게 되는 것입니다.)
Spring 에서 다 만들어 놓은대로 HttpMessageConverter 가 동작을 하여 단순 문자면 → StringConvertor
객체면 → JsonConvertor 가 동작하여 객체가 들어오면 JSON 으로 변경되어 웹 브라우저에게 보내게 됩니다.
접속 쿼리
http://localhost:8080/hello-api1?name=hihihi
로컬 서버로 접속하여 쿼리 넘겨주기
query 에 넣어준 값이 화면에 뜨는 것을 확인할 수 있습니다.
쿼리로 JSON 데이터 넘겨주기
controller 파일 작성
@GetMapping("hello-api2")
@ResponseBody
public Hello helloApi2(@RequestParam("name") String name, @RequestParam("age") int age) {
Hello hello = new Hello();
hello.setName(name);
hello.setAge(age);
return hello;
}
만약 데이터를 내리고 싶다면 어떻게 될까요? 이번에는 hello-api2 라는 path 를 연결했습니다.
이또한 쿼리로 데이터를 받습니다. 객체를 리턴하기 위해서, 반환될 객체 클래스를 일단 만들어 줍니다.
static class Hello {
private String name;
private int age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
helloApi2 클래스 바로 밑에 만들어주면 됩니다. 간단한 객체입니다.
접속 쿼리
http://localhost:8081/hello-api2?name=data&age=10
로컬 서버로 접속하여 쿼리 넘겨주기
해당 api도 따로 뷰화면은 필요 없습니다.
이렇게 쿼리를 엮어서 json 파일로 넘겨줄 수 가 있게 됩니다. default 가 JSON 객체 입니다.
스프링부트 json 데이터 넘겨주기 SpringBoot 쿼리 넘겨주기
'🧶 𝗪𝗲𝗯 > Spring' 카테고리의 다른 글
[Spring] Parameter 로 query string 가져오기 (1) | 2022.10.19 |
---|---|
[Spring] RequestMapping 방법 - url 매핑 (0) | 2022.10.19 |
[스프링 입문] 2.스프링 웹 개발 기초 - MVC와 템플릿 엔진 (0) | 2021.10.05 |
[스프링 입문] 2.스프링 웹 개발 기초 - 정적 컨텐츠 (0) | 2021.10.05 |
[스프링 입문] 1.프로젝트 환경설정 - View 환경설정 (0) | 2021.10.05 |