【问题标题】:REST API Design with Composite ID使用复合 ID 的 REST API 设计
【发布时间】:2015-09-25 03:59:21
【问题描述】:

为具有复合 ID 的对象设计 RESTful 资源的最佳方法是什么?例如,假设我有一个GET /people 资源用于获取人员记录列表。一个人没有单一的身份;相反,它由名字、姓氏和出生日期标识。我应该如何设计资源以获得一个人?

【问题讨论】:

  • 顺便说一句,虽然很少见,两个同名的人,可以过同一个生日。所以这对于PK来说是一个相当糟糕的选择。
  • 这是一个假设的例子。请在 firstName、lastName 和birthdate 保证唯一性的假设下进行操作。
  • 我同意@jwzirilli - 你应该使用一种(几乎)保证一个人的独特性的机制。社会安全号码 f.e.对人来说就是这样一个数字。如果在您的系统中,firstNamelastNamebirthday 的组合保证创建一个唯一标识符,您也可以使用 matrix-parameterGET /people;firstName=John;lastName=Smith;birthday=1973-12-01

标签: rest http


【解决方案1】:

我会使用以下变体之一:

GET /people/John/Smith/1973-12-01

GET /people/John,Smith,1973-12-01

【讨论】:

    【解决方案2】:

    正如comments 中已经提到的,如果您没有确保唯一性的单一标识符,您可以考虑矩阵变量

    GET /people;firstname=John;lastname=Smith;birthday=1973-12-01
    

    【讨论】:

      【解决方案3】:

      怎么样:

      GET /people/firstName/X/lastName/Y/birthdate/AAAA-MM-DD
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-04-12
        • 1970-01-01
        • 2017-04-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多