개발

controller - request 정리

제이G 2024. 4. 20. 11:53

 

Path Variable

/api/orders/{id}/accept
@RestController
@RequestMapping("/api/orders")
public class OrderRestController {

	@GetMapping("/{id1}/{id2}")
	public void findById(@PathVariable(value = "id1") final Long orderId,
						 @PathVariable(value = "id2") final Long temp
	) {
    		// something..
	}
    
}

 

 

Request Body

/api/orders/{id}/reject

request body
{
    "key" : "value"
}
@RestController
@RequestMapping("/api/orders")
public class OrderRestController {

	@PatchMapping("/{id}/reject")
	public void reject(@PathVariable(value = "id") final Long orderId,
					   @RequestBody OrderRejectRequest orderRejectRequest
	) {
		// something..
	}
    
}

public record OrderRejectRequest(String message) {
}

 

 

Query String

/api/orders?offset=3&size=10&ids=1,2,3

 

@RestController
@RequestMapping("/api/orders")
public class OrderRestController {

	// query string - @RequestParam
	@GetMapping("/ver1")
	public void findAllVer1(@RequestParam final Long offset,
							@RequestParam final Integer size,
							@RequestParam final List<Integer> ids
	) {
		// something ..
	}
    
	// query string - Object Binding
	// if want customize like initial value set or validation etc,
	// should override HandlerMethodArgumentResolver & register Bean
	@GetMapping("/ver2")
	public void findAllVer2(final SearchCondition searchCondition) {
		// something ..
	}
    
	// query string - mix
	@GetMapping("/ver3")
	public void findAllVer3(@RequestParam final Long offsettt,
							final SearchCondition searchCondition
	) {
		// something ..
	}
    
}