RESTful APIを設計する。私はリソース(人のデータ)を識別する2つの方法を持っています。データベースによって生成された一意のID、または各個人用に入力された社会保障番号(SSN)のいずれか。 SSNはおそらくユニークですが、変更することができます。REST APIでインフォーマントと固有の生成ID
IDを使用すると、一意であることが保証され、変更されないため、最も便利です。したがって、リソースのURLは、また常に同じまま:
GET /persons/12
{
"name": Morgan
"ssn": "840212-3312"
}
引数SSNを使用するため、それがAPIクライアントによって、より有益かつ理解しやすいということです。 SSNは、また、複数のシステムを取り巻くに使用されます。
GET /persons/840212-3321
{
"name": Morgan
"id": "12"
}
そこで質問です:私は最初のアプローチで行く、とSSNが変更される可能性があり、いくつかの実装の頭痛を避ける必要があります。そしておそらくSSNからIDに変換するいくつかのヘルパーメソッドを提供しますか?
または、2番目の方法を使用してください。より有益なAPIを提供します。 SSNの変更によりURL:sが変更される可能性があるので、RESTfulでないようなものに対処する必要はありますか?
私は同意する/検索/ URLに必要ではない、それを離れることはよりクリーンです。私はそれが良いも悪くもないので私の例では明確にするためにそれを追加しました。私は複数形と単数形があなたのDBテーブルを1つまたは複数の名前にするべきかどうかという行に沿った宗教的な事の一つだと思うが、それは間違いなくただの好みである。 – Ray
Hmmm ...私たちの洞察力には愛がありません。脳を持つためにあなたを+1しよう。 – Ray
@レイ私は現存するプロジェクトを引き継ぎ、データベーステーブルは既に複数形になっています。 URIスペースを(例えば) '/ viewopenjobs.php'から'/jobs?status = open'に改造したとき、私はファイル名を切り捨てたので、それらも複数になりました。 –