带有JAXRS的类的RESTful Hirerarchy

时间:2015-07-08 08:14:47

标签: java rest jersey jax-rs restful-architecture

想在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)注释实现上述目的

2 个答案:

答案 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