2017-03-24 59 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