2012-10-14 61 views
1

是否可以在Java中的相同REST方法上設置多個@Path註釋?一種方法,多個休息路徑

顯然我試過這個,但它沒有工作它未能編譯,但有沒有辦法做到這一點?也許是正則表達式呢?

我使用resteasy,如果有幫助。

我的方法是這樣的(以下僞代碼):

​​

所以這種方法是一樣的,邏輯是相同的,但讓我想團結這下一個方法,但保持兩個路徑到它。

+0

是什麼發生'projectID','carID'和'busID'?這些方法不需要它們嗎? – 2012-10-14 09:21:59

+0

他們是,但我沒有把這個邏輯,因爲它對我的問題並不重要,或者現在我已經給了它更多的想法,它實際上可能是重要的。這實際上會使這個不可能,因爲我必須在該方法中有兩組參數? –

+0

但它們對於問題的簽名很重要。這兩種方法是否真的採取相同的論點? – 2012-10-14 09:27:29

回答

1

是否可以在Java中的相同REST 方法上設置多個@Path註釋?

正如你發現那是不可能的。

Perhaps vie the regular expression? 

你可以用正則表達式來做,但這會帶來很多不必要的複雜性。這也會降低您的@Path -annotations的可讀性。恕我直言,不要使用正則表達式。

也許你可以做這樣的事情:

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必須是公共靜態的。 – Stony