具有多个 post 资源的 Restlet 服务
Restlet service with multiple post resources
我有一个 restlet 应用程序,除此之外,我有两个 post 服务,除了端点的尾部外,其他服务都更苗条。
示例
POST /example.com/api/myservice.json and POST
/example.com/api/myservice2.json
我已经将两个资源的业务写在单独的文件中。现在我怀疑是否可以将两个业务写在同一个文件中。在此先感谢
您需要遵循 Restlet 组织应用程序的方式。我的意思是资源附加在一个或多个路径上。在资源中,您可以定义服务请求的方法,总结如下:
- 附加到路径的资源
- 方法
GET
(举例)
- 方法
POST
(举例)
如果您对两条路径的处理完全相同,则可以为这两条路径附加相同的资源class。类似的东西:
Router router = new Router(getContext());
router.attach("/api/myservice", MyServerResource.class);
router.attach("/api/myservice2", MyServerResource.class);
您可以注意到扩展可以通过Restlet 的隧道服务进行管理。请参阅应用程序中的 getTunnelService().setExtensionsTunnel(true)
。
已编辑
相反,如果你想把一些处理集中到一个实体中,有两种选择:
- 使用 Restlet 服务器资源,您不能。唯一可能的事情是定义一个包含所有处理的 class 并从不同的服务器资源引用/使用它。
可以考虑使用Restlet的JAX-RS支持。这允许在同一个 class 中定义多个 REST 端点,如下所述。 link 可以为您提供更多详细信息: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() {
(...)
}
}
希望对你有帮助,
蒂埃里
我有一个 restlet 应用程序,除此之外,我有两个 post 服务,除了端点的尾部外,其他服务都更苗条。
示例
POST /example.com/api/myservice.json and POST /example.com/api/myservice2.json
我已经将两个资源的业务写在单独的文件中。现在我怀疑是否可以将两个业务写在同一个文件中。在此先感谢
您需要遵循 Restlet 组织应用程序的方式。我的意思是资源附加在一个或多个路径上。在资源中,您可以定义服务请求的方法,总结如下:
- 附加到路径的资源
- 方法
GET
(举例) - 方法
POST
(举例)
- 方法
如果您对两条路径的处理完全相同,则可以为这两条路径附加相同的资源class。类似的东西:
Router router = new Router(getContext());
router.attach("/api/myservice", MyServerResource.class);
router.attach("/api/myservice2", MyServerResource.class);
您可以注意到扩展可以通过Restlet 的隧道服务进行管理。请参阅应用程序中的 getTunnelService().setExtensionsTunnel(true)
。
已编辑
相反,如果你想把一些处理集中到一个实体中,有两种选择:
- 使用 Restlet 服务器资源,您不能。唯一可能的事情是定义一个包含所有处理的 class 并从不同的服务器资源引用/使用它。
可以考虑使用Restlet的JAX-RS支持。这允许在同一个 class 中定义多个 REST 端点,如下所述。 link 可以为您提供更多详细信息: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() { (...) } }
希望对你有帮助, 蒂埃里