为这个REST Web服务设计界面的“正确”做法是什么?

时间:2012-02-28 17:59:02

标签: rest jax-rs

我正在构建一个REST Web服务来管理客户和客户订单。

我在WebSphere 7上使用Eclipse 3.4和JAX-RS(Apache Wink 1.0)。

我在web.xml中定义了一个web项目,就像这样......

<servlet>
    <servlet-name>JAX-RS Servlet</servlet-name>
        <servlet-class>org.apache....RestServlet</servlet-class>
        <init-param>
            <param-name>javax.ws.rs.Application</param-name>
            <param-value>com.mydomain.ws.CustomerWS</param-value>
        </init-param>
    </servlet>

    <servlet-mapping>
        <servlet-name>JAX-RS Servlet</servlet-name>
        <url-pattern>/ws/*</url-pattern>
    </servlet-mapping>
/***/
</servlet>

...它为我提供了一个返回所有客户的http://.../ws/customers网址。

现在我需要做的是像http://.../ws/orders那样返回所有订单。

我的问题是,

我想添加第二个Web服务 - 我将如何添加到web.xml以便可以看到新的Web服务?或者我应该为我的第二个“订单”网络服务创建一个全新的网络项目?

或任何其他想法?不确定如何“正确”设计这个。

谢谢,Rob

1 个答案:

答案 0 :(得分:1)

我不熟悉Wink,但假设它与JAX-RS兼容,则不需要任何web.xml更改。 如果您的容器支持JAX-RS,

  • 然后用@Path注释你的第二课应该自动部署它
  • 否则您可以将新资源类添加到REST应用程序,例如基于您链接和推测资源类名称的示例:

    @Override
    public Set<Class<?>> getClasses() {
        Set<Class<?>> classes = new HashSet<Class<?>>();
        classes.add(CustomersResource.class); 
        classes.add(OrdersResource.class);
        return classes;
    }