2

node.js を REST API として使用します。次のアクションが利用可能です。

  1. /contacts、GET、すべての連絡先を検索
  2. /contacts、POST、新しい連絡先を作成
  3. /contacts/:id、GET、ID で特定の連絡先を表示または取得します
  4. /contacts/:id、PUT、特定の連絡先を更新
  5. /contacts/:id, DELETE, 特定の連絡先を削除します

ユーザーを検索してクエリを実行するためのロジック ルートはどうなるでしょうか。これを 3. ルートに入れるか、追加のルートを作成する必要がありますか?

4

3 に答える 3

2

この質問については、さまざまな意見があると思います。個人的には、「検索」は「すべての連絡先」をフィルタリングするものとして表示され、次のようになります。

GET /contacts?filter=your_filter_statement

おそらく、GET /contacts に既にフィルタリング パラメーターがあり、filter-statement で適切に機能するページネーションを許可しているはずです。

編集:これを使用して、クエリ文字列を解析します。

var url = require('url');

そしてあなたのハンドラーで(「リクエスト」はあなたのnodejs http-requestオブジェクトです):

var parsedUrl = url.parse(request.url, true);
var filterStatement = parsedUrl.query.filter;
于 2012-06-26T08:58:33.190 に答える
1

興味深い質問です。これは私が何度か行った議論です。

明確な答えはないと思います。あるいは、あるかもしれませんが、私はそれを知らないか、同意していません。新しいルートを追加する必要があると思います: /contacts/_search連絡先リストでアクションを実行します。この場合は検索です。次に何をするかを明確にし、定義します。

于 2012-06-26T08:52:33.550 に答える
-2

GET /contactsすべての連絡先を検索します。すべての連絡先のサブセットが必要です。サブセットを表すURIの区切り文字は? そうではありません "?"; それは非階層的です。「/」文字は、階層パス セグメントを区切るために使用されます。したがって、連絡先のサブセットについては、/contacts/like/dave/またはのような URI を試してください/contacts/by_name/susan/

パス セグメントによってデータをサブセット化するというこの概念は、コレクション以上のものであり、より広く適用されます。サイト全体がセットであり、各最上位パス セグメントがそのサブセットを定義します:http://yoursite.example/contactsは のサブセットですhttp://yoursite.example/。また、より狭く適用されます:/contacts/:idは のサブセットであり/contacts/contacts/:id/firstnameは のサブセットです/contacts/:id

于 2012-06-26T14:38:25.350 に答える