Wanna be Brilliant Full-Stack Developer

2/24 SPRING HTTP 쿼리 스트링, 주소 변수매핑! 에대해 알아보자 ! 본문

Some Memos/Spring 개념

2/24 SPRING HTTP 쿼리 스트링, 주소 변수매핑! 에대해 알아보자 !

Flashpacker 2022. 2. 24. 16:17


구체적인 데이터 요청시에 쿼리스트링이나 주소 변수 매핑이 필요하다?

스프링부트에서는 주소 변수 매핑을 주로사용한다? 훨씬 편리하다는데 

구체적인 사례를 통해 보겠다.

 

통닭집이 있는데 통닭집에는 양념통닭과 , 후라이드가 있고 , 반반 치킨도 있다.

고객이 요청을 할것이다 , 고객이 요청을 하려면 고객이 요청하려면 멀 알아야하냐면

 

만약에 전화번호가 02-2222이면 고객이 02-2222이라는 전화번호로 요청을 할것이다 

요청을 할떄 우리가 통닭집에 무언가를 주는것이 아니라 치킨을 받게 되기떄문에 그것은 GET요청이 될것이다.

get으로 02-2222를 요청하면 통닭집에서 의문을 가질거다, 전화를 했는데 어떤 통닭을 달라고 말을 안하니..

 

두번쨰로 머가 필요하냐면 쿼리스트링이나 주소변수 매핑이 필요하다

쿼리 스트링이 머냐면 Get  02 -2222 요청을 할떄 애들은 약속이 되어있다. 

쿼리스트링

이렇게 주소뒤에 물음표로 시작하면 쿼리스트링이라고 말한다. 구체적인 요청을 할때는 이 쿼리스트링이 필요하다 

 

밑에는 / 하고 양념

둘다 양념통닭을 요청할 수 있는데 위에거 보면 요청할때마다 저 type 옆에 바꿀수 있다.

밑에도 요청을 할때 반반으로 변경해서 요청하면된다. 밑에것은 path variable이라고 하는데 

이 두가지다 사용해보려고한다! 

package com.cos.controllerdemo.web;

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class QueryPathController {

	@GetMapping("/chicken")
	public String chickenQuery(String type) {
		return type+" 배달갑니다. (쿼리스트링) ";
	}
	
	@GetMapping("/chicken/{type}")
	public String chickenPath(@PathVariable String type) {
		return type+" 배달갑니다.(주소변수매핑)";
	}
}

밑에 중괄호는 주소에서 데이터를 저기에 전달 받을수 있다.

위에는 데이터를 전달받는것이 없기 떄문에 옆에 String type이라고 적는다.

 

밑에는 @PathVariable String type 이라고 적을수 있다. 

 

이렇게하고 localhsot:8080 으로 하면 이 프로젝트에 도착하게 되고 

지금 type이 값이 없으니 null이 배달이 간다고 나오는데 여기서 값을 채우려면 

구체적인 요청을 할수 쿼리스트링을 통해서 하게 해준다! 

쿼리스트링은 이 메서드에 파라메터를 넣기만하면 바로 받아준다! 

 

두번쨰를 요청할때는 

저 중괄호 자리 type에 양념이 쏙 들어와서 그거를 매핑해서 

return type에 들어간다 

 

이두가지 방식을 봤을때  주소변수 매핑이 훨씬 눈에 보기 쉽고 가독성이 좋다. 어떤 구체적인 요청을 할때는 쿼리스트링과 주소변수 매핑이 있는데 스프링부트에서는 쿼리스트링을쓰는것이 아니라 주소변수 매핑 Path Variable을 쓴다!