2012-10-14 5 views
1

Java에서 동일한 REST 메소드에 @Path 주석을 여러 개 설정할 수 있습니까?하나의 방법, 다중 휴식 경로

분명히이 방법을 시도했지만 컴파일하지 못했지만이 방법이 있습니까? 아마도 정규 표현을 모르는가?

도움이된다면 resteasy를 사용하고 있습니다.

@Path("/project/{projecID}/car/{carID}/carService/{carserviceID}/engine/{engineID}") 
public Engine getCarEngin(@PathParam("projecID") projectID, @PathParam("carID") carID, @PathParam("carserviceID") carserviceID, @PathParam{engineID}){ 
    // return engine based on the id 
} 

@Path("/project/{projecID}/bus/{busID}/busService/{busserviceID}/engine/{engineID}") 
public Engine getBusEngin(@PathParam("projecID") projectID, @PathParam("busID") busID, @PathParam("carserviceID") carserviceID, @PathParam{engineID}){ 
    // return engine based on the id 
} 

그래서 방법은 논리가 같은 동일 않고, 그래서 하나의 방법에 따라 본 단결 만이 개 경로를 유지하고 싶은 :

내 방법은 다음과 같이 (아래 의사 코드)를 보면 그것에.

+0

'projectID','carID', 그리고'busID'에 어떤 일이 발생 하는가? 이 방법으로 필요하지 않습니까? –

+0

그들은 내 질문에 대해별로 중요하지 않거나, 실제로 이것이 더 중요 할 수도 있다는 생각을 더했기 때문에 그들은 논리를 쓰지 못했습니다. 메서드에서 2 세트의 매개 변수를 가져야하므로 실제로이 작업을 수행 할 수 있습니까? –

+0

그러나 질문의 ​​서명에 중요합니다. 두 방법 모두 실제로 동일한 인수를 사용합니까? –

답변

1

Java에서 동일한 REST 메소드에 여러 개의 @Path 주석을 설정할 수 있습니까?

당신이 발견 한대로 그건 불가능합니다.

Perhaps vie the regular expression? 

정규식을 사용하면되지만 불필요한 복잡성이 많이 생깁니다. 또한 @Path- 주석의 가독성이 떨어집니다. IMHO, 정규식을 사용하지 마십시오.

아마도 당신은 이런 식으로 뭔가를 할 수 있습니다

enum VehicleType { 
    BUS, CAR 
} 


@Path("/project/{projecID}/{vehicleType}/{vehicleID}/service/{serviceID}/engine/{engineID}") 
public Engine getEngine(@PathParam("projecID") projectID, 
    @PathParam("vehicleType") VehicleType vehicleType, 
    @PathParam("vehicleID") vehicleID, @PathParam("serviceID") serviceID, 
    @PathParam("engineID"} engineID){ 

    // return engine based on the id 
} 
+0

에 대한 것이지만, 관심이 있다면 함께 가고 싶다. regnext, 그 모양은 어떨까요, 경로 주석은 무엇입니까? –

+0

http://docs.jboss.org/resteasy/docs/2.3.4.Final/userguide/html_single/index.html#_Path_and_regular_expression_mappings – eiden

+0

방금 ​​시도했지만 enum VehicleType은 public static이어야합니다. – Stony