본문 바로가기
Java

[SpringBoot] RestApi 만들기 (5.4) GetMapping, PostMapping

by bryan.oh 2021. 7. 10.
반응형

Spring Boot
GetMapping
PostMapping

 

Table 구조가 아래와 같을때 관련된 파라메터를 받겠습니다.

GetMapping

@PathVariable

@GetMapping("cityAdd/{name}/{countryCode}/{district}/{population}")
public Object cityAdd(@PathVariable(value="name") String name
		, @PathVariable(value="countryCode") String ctCode
		, @PathVariable(value="district") String district
		, @PathVariable(value="population") int population) {
	
	log.debug("name = {}, ctCode = {}, district = {}, population ={}", name, ctCode, district, population);
	
	return "ok";
}

호출 : http://localhost:8000/info/cityAdd/TEST/TST/Seoul/100

결과 :

 

@RequestParam

@GetMapping("cityAdd")
public Object cityAdd(@RequestParam(value="name", required=true) String name
		, @RequestParam(value="countryCode", required=true) String ctCode
		, @RequestParam(value="district", required=true) String district
		, @RequestParam(value="population", required = false, defaultValue = "0") int population) {
	
	log.debug("name = {}, ctCode = {}, district = {}, population ={}", name, ctCode, district, population);
	
	return "ok";
}

value 는 url 에서의 parameter 명 입니다.

우선 테스트로 파라메터만 받아서 로그를 찍어보면

http://localhost:8000/info/cityAdd?name=TEST&countryCode=TST&district=Seoul&population=100

 

@RequestParam 과 @PathVariable 을 같이 사용할 수 있습니다.

 

파라메터로 받는 필드들이 City Class 에 다 있는거니까 아래처럼 간단히 쓸수있습니다.

@GetMapping(value="cityAdd")
public Object cityAdd(City city) {
	log.debug("city = {}", city.toString());
	return "ok";
}

호출은 위와 똑같이 하면 됩니다.


PostMapping

요청 파라메터가 JSON 일 때

@PostMapping(value="cityAdd")
public ResponseEntity<City> cityAdd(@RequestBody City city) {
	log.debug("city = {}", city.toString());
	return new ResponseEntity<>(city, HttpStatus.OK);
}

 

리턴으로 굳이 다시 보내지 않으려면,

 

요청을 Query Params로 할 때 (form tag 같은)

@PostMapping(value="cityAdd")
public ResponseEntity<String> cityAdd(String name, String countryCode, String district, Integer population) {
	log.debug("name = {}, ctCode = {}, district = {}, population ={}", name, countryCode, district, population);
	return new ResponseEntity<>("", HttpStatus.OK);
}

호출

 

오류처리

소스

결과

 

참고

@PostMapping 으로 된 메소드를 get 방식으로 호출하면

 

 

Spring Boot Tutorial 시리즈

Spring Boot Tutorial 부록

728x90
반응형

댓글