【发布时间】:2015-10-12 10:52:54
【问题描述】:
我有一个 restlet 应用程序,除此之外,我还有两个后期服务,除了端点的尾部之外更纤细。
例子
POST /example.com/api/myservice.json 和 POST /example.com/api/myservice2.json
我已将这两个资源的业务写在单独的文件中。现在我怀疑是否可以将这两个业务写在同一个文件中。提前致谢
【问题讨论】:
我有一个 restlet 应用程序,除此之外,我还有两个后期服务,除了端点的尾部之外更纤细。
例子
POST /example.com/api/myservice.json 和 POST /example.com/api/myservice2.json
我已将这两个资源的业务写在单独的文件中。现在我怀疑是否可以将这两个业务写在同一个文件中。提前致谢
【问题讨论】:
您需要遵循 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 的 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() {
(...)
}
}
希望对你有帮助 蒂埃里
【讨论】: