如何为资源定义REST URI?

时间:2012-01-19 16:44:06

标签: http rest uri

假设我有一组可以通过

访问的申请人
/applicants

申请人可以通过两种不同的方式进行唯一识别:通过ssn或身份证号码。

如何为特定申请人指定我的GET

通常我会做唯一标识符

/applicants/{id}

但在这种情况下,我有两个不同的唯一标识符。有关处理此问题的正确方法的任何建议。

执行类似

的操作似乎不正确
/applicants/{id}
/applicants/ssn/{ssn}

1 个答案:

答案 0 :(得分:3)

unique 并且是标识符是两个不同的概念。标识符(即id)更适合通过URI识别和定位资源,因为:

  1. (可能)完全控制了ID及其生命周期。
  2. 虽然SSN今天可能是独一无二的,但政府可能会改变SSN明天的工作方式。我自己不喜欢将我的内部标识符与外部源相关联。
  3. 对我来说,SSN似乎更像是一个可查询的属性,而不是资源标识符,例如:

    # Searches for applicants with the provided ssn
    GET /applicants?ssn=000-00-0000