2017-04-21 3 views
0

사용자 정의 컨트롤러를 포함하지 않는 봄 데이터 REST의 기본 경로의 변경하고 내가나는 봄 부팅 응용 프로그램을

spring.data.rest.base-path=/api 

다음 컨트롤러/API를하지 않고 요청에 반응 변경하려면 다음 컨트롤러

@Controller 
@RequestMapping("/orders/{id}") 
@ExposesResourceFor(Payment.class) 
@RequiredArgsConstructor 
public class PaymentController { 
    ... 
} 

기본 경로

curl -i -X PUT -H "Content-Type:application/json" -d "{ \"number\": \"1234123412341234\" }" http://localhost:8080/orders/1/payment 

즉하지 http://localhost:8080/api/orders/1/payment

/api 기본 경로를 사용하려면 컨트롤러 매핑을 @RequestMapping("/api/orders/{id}")으로 업데이트하는 것이 바람직합니다. 이는 코드로 구성을 하드 코딩하기 때문에 바람직하지 않습니다.

이 문제를 해결하려면 어떤 해결책이 있습니까?

클래스 레벨의 @RequestMapping 어노테이션 당신이 경우 사용하지 마십시오 : 기본 경로의 사용자 정의 컨트롤러가 인식하도록 감사

+0

에 WITH RepositoryRestHandlerAdapter에 의해 다음의 basePath없이 RequestMappingHandlerMapping에 의해

첫째. 컨트롤러는 표준 Spring MVC constroller이다. 자세한 내용은 여기를 참조하십시오. http://stackoverflow.com/questions/32927937/how-to-set-base-url-for-rest-in-spring-boot –

답변

2

당신은 @RepositoryRestController 대신 @Controller

1

그리고 어떤 말로 주석을해야으로 구성한 @RepositoryRestController 주석을 사용하십시오.

그렇지 않으면 컨트롤러 메서드를 두 번 매핑 할 수 있습니다! 속성은 봄 데이터 나머지 컨트롤러의라는 basePath

관련 문제