[스프링부트 Gradle ] API

JEONG SUJIN·2023년 2월 8일
0

스프링부트 기본

목록 보기
5/15

HelloController.java

@ResponseBody 중요!
html에 나오는 body태그가 아니라 http에서 header, body가 있는데 body에 return(응답부분) 값(데이터)을 직접 넣어주겠다는 의미

기존 템플릿과 차이점은 뷰가 없다. 데이터만 들어간다는 것!

@GetMapping("/hello-string")
	@ResponseBody
	public String helloString(@RequestParam("name") String name) {
		return "hello"+name;
	}

쿼리스트링에 내가 "안녕"이라고 입력하자 뷰에 입력한 값이 그대로 들어간다.!
데이터를 그대로 보여주는게 젤 큰 차이점!

문자가 아닌 데이터를 할 때 많이쓴다.

HelloController.java


//이게보통 api방식이라고 많이 얘기하는 구문![](https://velog.velcdn.com/images/angela_/post/af0254f4-90fb-44f8-8082-e971636bd9e4/image.png)

@GetMapping("hello-api")
	@ResponseBody
	public Hello helloApi(@RequestParam("name") String name) {
		Hello hello = new Hello();
		hello.setName(name);
		return hello;
		
	}
	
	static class Hello {
		private String name;

		public String getName() {
			return name;
		}
		public void setName(String name) {
			this.name= name;
		}
	}

JSON방식으로 데이터가 나온다.
json은 key:value 로 표현된다. 즉, key는 우리가 설정한 name이고, value은 입력한 값!

스프링에서는 객체를 반환하고, @ResponseBody로 해놓으면
json으로 반환하는게 기본을 세팅되어있음.

@ResponseBody 사용 원리

  • @ResponseBody를 사용

    • HTTP의 Body에 문자내용을 직접 반환
    • viewResolver 대신에 HttpMessageConverter가 동작
    • 기본 문자처리 : StringHttpMessageConverter (JsonConverter)
    • 기본 객체처리 : MappingJackson2HttpMessageConverter (StringConverter)
    • byte 처리 등등 기타 여러 HttpMessageConverter가 기본으로 등록되어 있음
profile
기록하기

0개의 댓글