如何在 ActiveWeb 中支持嵌套资源
How to support netsted resources in ActiveWeb
两个名为 "Post" 和 "Comment" 的模型,我想构建 RESTful 路由,如 /post/123/comment/8
和 CommentsController
处理所有 RESTful动作。
我试过了
route("/posts/{post_id}/comments/*").to(CommentsController.class);
和
route("/posts/{post_id}/comments/*").to(CommentsController.class).get().post().put().delete();
并且 none 有效:(
您需要的不是来自 AvctiveWeb 框架的 RESTful 组路由:http://javalite.io/routing#restful-routing。
您要做的是定义一些自定义路由。并不是说它们不是基于 REST 的。
这是有效的示例:
路线:
public class RouteConfig extends AbstractRouteConfig{
public void init(AppContext appContext) {
route("/posts/{post_id}/comments/{comment_id}").to(CommentsController.class).action("index").get();
}
}
控制器:
public class CommentsController extends AppController {
public void index(){
respond("index, post:" + param("post_id") + ", comment: " + param("comment_id"));
}
}
然后点击这个:
http://localhost:8080/posts/123/comments/456
并观察:
index, post:123, comment: 456
两个名为 "Post" 和 "Comment" 的模型,我想构建 RESTful 路由,如 /post/123/comment/8
和 CommentsController
处理所有 RESTful动作。
我试过了
route("/posts/{post_id}/comments/*").to(CommentsController.class);
和
route("/posts/{post_id}/comments/*").to(CommentsController.class).get().post().put().delete();
并且 none 有效:(
您需要的不是来自 AvctiveWeb 框架的 RESTful 组路由:http://javalite.io/routing#restful-routing。
您要做的是定义一些自定义路由。并不是说它们不是基于 REST 的。
这是有效的示例:
路线:
public class RouteConfig extends AbstractRouteConfig{
public void init(AppContext appContext) {
route("/posts/{post_id}/comments/{comment_id}").to(CommentsController.class).action("index").get();
}
}
控制器:
public class CommentsController extends AppController {
public void index(){
respond("index, post:" + param("post_id") + ", comment: " + param("comment_id"));
}
}
然后点击这个:
http://localhost:8080/posts/123/comments/456
并观察:
index, post:123, comment: 456