想在REST中使用JAXRS和jersey作为提供者创建以下层次结构
@POST /origination/customers/
@PUT /origination/customers
@GET /origination/customers/{customerId}
@POST /origination/customers/{customerId}/inventory
@PUT /origination/customers/{customerId}/inventory
@GET /origination/customers/{customerId}/inventory/inventoryId
目前所有服务都是在单个类OriginationService中编写的,但是为了更好的封装,我想知道服务是否可以像CustomerOriginationService中的客户来源和CustomerInventoryService中的Inventory来源一样被折射(这是一个例子)情景,我的问题是类似的事情)
是否可以通过JAXRS(Jersey)注释实现上述目的
答案 0 :(得分:1)
当然! Ant是在不同的类中组装HTTP方法集的标准方法。您需要使用@Path
示例 - @Path("/{parameter}")
。
以下代码可能对您有用 -
控制器接口 -
package com.teducate.api;
import java.io.UnsupportedEncodingException;
import javax.ws.rs.DefaultValue;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
import javax.ws.rs.QueryParam;
import javax.ws.rs.core.Response;
public interface TekEvents {
@GET
@Path("/{parameter}")
@Produces("application/json")
Response responseMsg( @PathParam("parameter") String parameter,
@DefaultValue("Nothing to say") @QueryParam("value") String value) throws UnsupportedEncodingException;
}
实施 -
package com.teducate.api.impl;
import javax.ws.rs.Path;
import javax.ws.rs.core.Response;
import com.teducate.api.TekEvents;
import com.teducate.bo.TekEventsBO;
import com.teducate.bo.impl.TekEventBOImpl;
@Path("events")
public class TekEventsController implements TekEvents {
TekEventsBO tekEventsBO;
public TekEventsController() {
tekEventsBO = new TekEventBOImpl();
}
public Response responseMsg(String parameter, String value) {
String output = tekEventsBO.responseMsg(parameter, value);
return Response.status(200).entity(output).build();
}
}
答案 1 :(得分:1)
子资源定位符是我正在寻找的关键字。
以下文章总结得很好 http://docs.oracle.com/javaee/6/tutorial/doc/gknav.html#gkrhr