반응형
Spring Boot Rest Controller에서 요청 URL을 가져오는 방법
RestController에서 요청 URL을 가져오려고 합니다.RestController에는 다음과 같은 주석이 달린 여러 메서드가 있습니다.@RequestMapping
URI가 다른데 어떻게 하면 절대 URL을 얻을 수 있을까요?@RequestMapping
주석입니다.
@RestController
@RequestMapping(value = "/my/absolute/url/{urlid}/tests"
public class Test {
@ResponseBody
@RequestMapping(value "/",produces = "application/json")
public String getURLValue(){
//get URL value here which should be in this case, for instance if urlid
//is 1 in request then "/my/absolute/url/1/tests"
String test = getURL ?
return test;
}
}
유형의 인수를 추가해 볼 수 있습니다.HttpServletRequest
에게getUrlValue()
방법:
@RequestMapping(value ="/",produces = "application/json")
public String getURLValue(HttpServletRequest request){
String test = request.getRequestURI();
return test;
}
만약 당신이 스프링의 HATEOAS에 대한 의존을 원치 않으시면javax.*
네임스페이스, 사용ServletUriComponentsBuilder
현재 요청의 URI를 가져오려면:
import org.springframework.web.util.UriComponentsBuilder;
ServletUriComponentsBuilder.fromCurrentRequest();
ServletUriComponentsBuilder.fromCurrentRequestUri();
현재 URL뿐만 아니라 시스템상의 URL도 취득할 수 있습니다.
import org.springframework.hateoas.mvc.ControllerLinkBuilder
...
ControllerLinkBuilder linkBuilder = ControllerLinkBuilder.linkTo(methodOn(YourController.class).getSomeEntityMethod(parameterId, parameterTwoId))
URI methodUri = linkBuilder.Uri()
String methodUrl = methodUri.getPath()
유형의 매개 변수 추가UriComponentsBuilder
컨트롤러 방식으로 이동합니다.Spring에서는 현재 요청에 대해 URI를 사용하여 미리 구성된 인스턴스가 제공되며, 그런 다음 이를 커스터마이즈할 수 있습니다(예:MvcUriComponentsBuilder.relativeTo
같은 프레픽스를 사용하여 다른 컨트롤러를 포인트 합니다).
언급URL : https://stackoverflow.com/questions/37710557/how-to-get-request-url-in-spring-boot-restcontroller
반응형
'programing' 카테고리의 다른 글
postgresql에서의 JSON 해석 방법 (0) | 2023.03.02 |
---|---|
각도 클리어 방법JS 어레이 (0) | 2023.03.02 |
setState가 상태를 즉시 업데이트하지 않음 (0) | 2023.02.25 |
운석을 쓰면 앵귤러가 왜 필요하죠? (0) | 2023.02.25 |
Angular.js $http.Post TypeError: 정의되지 않은 속성 'data'를 읽을 수 없습니다. (0) | 2023.02.25 |