代码之家  ›  专栏  ›  技术社区  ›  Luke404

对于RESTful应用程序中的“嵌套”资源,哪种URL方案更好?

  •  1
  • Luke404  · 技术社区  · 15 年前

    假设我们希望一个RESTful Web服务来管理一些逻辑上嵌套的资源,其中资源“b”的每个实例逻辑上都包含在资源“a”的一个实例中。 作为一个系统管理员,第一个想到的例子是电子邮件帐户及其域:alice@domain1.com bob@domain1.com alice@domain2.com…

    你会建议什么网址方案?一开始我会尝试:

     /domain/[domainname]
     /domain/[domainname]/account/[accountname]
    

    这符合休息的原则吗?或者我应该带着这样的东西去:

     /domain/[domainname]
     /account/[account@domainname]/
    

    或者其他什么?

    1 回复  |  直到 15 年前
        1
  •  3
  •   S.Lott    15 年前

    这个问题是一个“导航”和“独立性”的问题。

    帐户有意义吗 外部 一个特定的领域?一般情况下没有,所以帐户没有单独的顶级路径。

    但是,使用 /domain/[domainname]/account/[accountname] 在URI中间有一个标签也不太好看。“域”和“帐户”这两个词不是很有用。

    这样的事情让你更快乐:

    /domain/[domainname]/  -- general information about the domain
    /account/[domainname]/[account]/ -- a specific account within the domain.
    

    路径的顶部是数据类型的分类器。

    路径的其余部分是导航到该数据块的方法。