具有多个帖子资源的Restlet服务

时间:2015-10-12 10:52:55

标签: java rest restlet

我有一个restlet应用程序,除此之外,我有两个帖子服务,除了端点尾部更纤细。

示例

  

发布 /example.com/api/myservice.json 和POST   的 /example.com/api/myservice2.json

我已将两个资源的业务都写在单独的文件中。现在我怀疑是否有可能将这两个业务写在同一个文件中。谢谢提前

1 个答案:

答案 0 :(得分:2)

您需要遵循Restlet组织应用程序的方式。我的意思是资源附加在一个或多个路径上。在资源中,您可以定义为请求提供服务的方法,如下所示:

  • 附加到路径的资源
    • 方法GET(例如)
    • 方法POST(例如)

如果两个路径的处理完全相同,则可以为这两个路径附加相同的资源类。这样的事情:

Router router = new Router(getContext());
router.attach("/api/myservice", MyServerResource.class);
router.attach("/api/myservice2", MyServerResource.class);

您可以注意到扩展可以由Restlet的隧道服务管理。请参阅应用程序中的getTunnelService().setExtensionsTunnel(true)

<强>被修改

相反,如果您想将一些处理收集到一个实体中,有两种选择:

  • 使用Restlet服务器资源,您无法做到。唯一可能的事情是定义一个包含所有处理的类,并从不同的服务器资源中引用/使用它。
  • 您可以考虑使用Restlet的JAX-RS支持。这允许在同一个类中定义几个REST端点,如下所述。此链接可以为您提供更多详细信息:http://restlet.com/technical-resources/restlet-framework/guide/2.2/extensions/jaxrs

    public class MyResource {
        @POST
        @Path("/api/myservice")
        public SomeObject1 handleRequest1() {
            (...)
        }
    
        @POST
        @Path("/api/myservice2")
        public SomeObject2 handleRequest2() {
            (...)
        }
    }
    

希望它可以帮到你, 亨利