【问题标题】:Proper way to structure my REST api in this case在这种情况下构建我的 REST api 的正确方法
【发布时间】:2015-02-10 18:32:54
【问题描述】:

我正在尝试使用 MEAN 堆栈(MongoDB、ExpressJS、AngularJS 和 NodeJS)构建一个小型 Web 应用程序。

我的问题很简单。如果您以博客为例,它将包含博客文章,您可以在此网址列出:

GET /api/posts

您还可以获得该帖子的 cmets:

GET /api/posts/:postId/cmets

并获得一条评论:

GET /api/posts/:postId/cmets/:commentId

post 和 comment 之间的关系在这里真的很明显,但它仍然强制必须这样吗?或者我可以通过 /api/cmets 执行我的 CRUD 操作吗?最后,mongodb 中的评论对象将始终具有 postId 属性,该属性将引用与其相关的帖子......此外,该 API 不会被公开,并且严格意味着由应用程序使用。

【问题讨论】:

    标签: rest mean-stack


    【解决方案1】:

    是否仍然强制要求以这种方式拥有它?

    没有。这根本不是强制性的。

    或者我可以通过 /api/cmets 执行我的 CRUD 操作吗?

    是的。这将导致更清晰的资源 URI(端点)。

    您还可以通过以下方式获取特定于帖子的 cmets:

    GET /api/comments?postId={postId}
    

    此外,如果您在给定主机上仅提供 API,您还可以删除 /api 前缀。

    【讨论】:

    • 感谢您的回答!但是我将如何在特定的博客文章中列出 cmets 呢? /api/cmets/:postId ?这有意义吗?
    猜你喜欢
    • 2013-07-28
    • 2010-12-25
    • 2011-03-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多