2012-01-19 3 views
0

私は一意二つの異なる方法を同定することができるリソースのREST URIを定義する方法は? SSNによって、またはID番号:

/applicants 

出願を介してアクセスすることができる出願人のコレクションを持っていると言うことができます。

特定の申請者にはGETをどのように指定しますか?

一般的に一意の識別子のために私は

/applicants/{id} 

を行うだろうが、この場合には私は2つの異なるユニークな識別子を持っています。これを適切に処理する方法に関する提案。

/applicants/{id} 
/applicants/ssn/{ssn} 

答えて

3

ユニークである2つの異なる概念識別子されているような何かをすることが間違っているようです。識別子(すなわちidは)ので、URIを介してリソースを識別し、見つけるためのより適切であろう。

  1. あなた IDとそのライフサイクルの完全な制御で(おそらく)です。
  2. SSNは今日独特のものかもしれませんが、政府は明日のSSNの作業方法を変更する可能性があります。私自身は、内部の識別子を外部のソースに結合するのが好きではありません。私に

、SSNは例えば、リソース識別子よりも照会可能プロパティのように思える。:

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

あなたはまだ照会可能プロパティを使用するときに404を返すために適切であると考えますか? – Mike

+0

あなたの '/応募者 'が通常応答するものによって異なります。通常、私はそれがクエリ文字列にマッチしたアプリケーションリソースのリストのようなもので応答すると期待しています。一致するものがなければ空リストになります。私はこのケースで404を返すとは思わないでしょう。 –

+0

ありがとう。 /応募者は通常、空のリストを返します。しかし、?ssn =の場合、私は404を返すと思います。?lastName =または他の一意ではない識別子の場合、私は空のリストに行きます。入力いただきありがとうございます。 :D – Mike

関連する問題