私はシンプルなREST APIを開発しています:作成のための検索のユニークな属性によってリソース
- JSON
- ほとんどCRUDのような操作を
- POST、更新
のための各リソースをPUTは、固有のデータベースハンドル(実際には自動インクリメント)によって識別されます。これは、次のようにURIを通じて公開されます。
/collection/131
コレクションの表現は、このように、子リソースのリストです:
{
"children": [
{ "name": "foo", "href": "/collection/131" }
]
}
「名前」フィールドには、コレクション全体で一意である必要があります。
私は1つのことを除いてこのパターンに非常に満足しています。与えられた名前のリソースを検索して、コレクション表現を反復処理します。
"URIに名前解決"メカニズムを追加するにはどうすればよいでしょうか?それでもRESTには真実がありますか?私は、次のオプションを参照してください。
- はURI
- に名前を入れて検索可能なコレクションを作る
- リダイレクトまたは検索メカニズム
私はしたくない理由のいくつかの種類( 1)は、URIアドレス空間がAPIの一部ではなく、実装の詳細であることです。既知の唯一のリソースは、他のすべてのリソースを見つけることができるルートリソースです。
APIユーザーが名前をURIに解決する方法を簡単にするにはどうすればよいですか?
ご提案について "unrestful" は何もありません。個人的には、私はそれを簡単に保ち、 '/ collection?name = 'blah''結果の表現は、name =' blah 'のリソースへのリンクのリストになります。 –
@Darrel:または名前が一意であるため、結果の表現は適切な標準リソースへのリダイレクトになります。 @jrydberg:あなたのメディアタイプについてhttp://www.aminus.org/rbre/shoji/shoji-draft-02.txtを見てください。あなたのように検索URL(「カタログ」)を公開するための優れたサポートがあります。 – fumanchu
@fumanchuコレクションに単一の結果しか含まれていない場合、リダイレクトするのは興味深い考えです。 –