如何在ActiveWeb中支持netsted资源

时间:2019-02-19 10:44:01

标签: rest routing javalite activeweb

两个名为“ Post”和“ Comment”的模型,我想构建像/post/123/comment/8CommentsController这样的RESTful路由来处理所有RESTful动作。

我尝试过

route("/posts/{post_id}/comments/*").to(CommentsController.class);

route("/posts/{post_id}/comments/*").to(CommentsController.class).get().post().put().delete(); 

没有任何效果:(

1 个答案:

答案 0 :(得分:0)

从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