2

ルートの 2 つの因数分解を決定する根拠がわかりません。私の質問は、次のいずれかを決定するための鍵となる要因は何ですか。

  • より多くのルート - より少ないパラメーター
  • より少ないルート - より多くのパラメーター - ハンドラーのロジック

以下の 2 つのサンプルは私の実際のケースですが、これは一般的な質問だと思います。

私のベースラインは、それぞれ 2 つのパラメーターを持つ 2 つのルートです。

URI's:
/poweronoff?id=4&val=1
/powerset?id=7&val=75

// app.js
app.get('/poweronoff', mymodule.poweronoff);
app.get('/powerset', mymodule.powerset);

// mymodule
exports.poweronoff= function(req, res){
   setonoff(req.query.id, req.query.val, req, res);
   }

exports.powerset = function(req, res){
   setvalue(req.query.id, req.query.val, req, res);
   }

代替ファクタリングは、3 つのパラメータを持つ 1 つのルートです。

URI's:
/power?action=onoff&id=4&val=1
/power?action=set&id=7&val=75

// app.js
app.get('/power', mymodule.power);

// mymodule
exports.power = function(req, res){
  if (req.query.action = 'onoff') {
    setonoff(req.query.id, req.query.val, req, res);
  }
  else {
    setvalue(req.query.id, req.query.val, req, res);
  }
}

この 2 つは、私にはほぼ等しいように見えます。違いは、ルーティング テーブル内の 1 つのブランチと、mymodule 内の 1 つの if ブランチです。これらのファクタリングのいずれかを支持してバランスを傾けるキャッシング、メモ化、またはその他の要因はありますか? クライアント側は要因に貢献していますか?

4

1 に答える 1

0

これはどちらかというと、正解のない哲学的な問題です。

  • REST サービスを実装する場合は、RESTful URI設計を使用することをお勧めします。
  • 自由に選択できますが、きれいなデザインが好きな場合は、きれいな URLデザインに固執するかもしれません。
  • 優れた URL 設計の一般原則を学びたいだけの場合は、この素晴らしい回答を確認してください。
于 2014-02-15T21:00:05.940 に答える