programing

Spring Boot Rest Controller에서 요청 URL을 가져오는 방법

linuxpc 2023. 3. 2. 22:01
반응형

Spring Boot Rest Controller에서 요청 URL을 가져오는 방법

RestController에서 요청 URL을 가져오려고 합니다.RestController에는 다음과 같은 주석이 달린 여러 메서드가 있습니다.@RequestMappingURI가 다른데 어떻게 하면 절대 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

반응형