2017-03-24 63 views
2

動態擴展路徑,我有以下接口REST風格:如何通過接口

@Path("/v1") 
public interface IV1Api { 

} 

@Path("/Accounts/{AccountId}") 
public interface IAccountsInstanceApi extends IV1Api { 

} 

@Path("/Users") 
public interface IUsersListApi extends IAccountsInstanceApi { 
    @GET 
    Json listUsers(); 

    @POST 
    Json createUser(); 
} 

public UsersListResource implements IUsersListApi { 
    // ... 
} 

我期待我的用戶列表的資源路徑是/v1/Accounts/123/Users,但它是/Users。我究竟做錯了什麼?

+0

我認爲通過將@Path(「/ v1/Accounts/123/Users」)放在IUsersListApi接口上方可以工作。 –

+0

真的。但是我正在尋找一種方法來擴展先前實現的路徑,而不是絕對路徑 – Kousha

回答

2

對不起,但它不這樣工作。您可以執行以下操作:

@Path(IAccountsInstanceApi.PATH) 
public interface IAccountsInstanceApi extends IV1Api { 
    String PATH = "/Accounts/{AccountId}"; 
} 

@Path(IUsersListApi.PATH) 
public interface IUsersListApi extends IAccountsInstanceApi { 
    String PATH = IAccountsInstanceApi.PATH + "/Users"; 

    @GET 
    Json listUsers(); 

    @POST 
    Json createUser(); 
} 
+1

這很有道理。謝謝! – Kousha