0

手動 Web ルーティングの目的は何ですか? URL とモジュール/メソッド/関数名を自動的にマッピングしないのはなぜですか?

既存の URL を壊すことなく、URL を変更する方法でリファクタリングしたい場合は、完全に自動化されたマッピングから始めて、Apache mod_rewrite や mod_redirect などを使用できます。

4

4 に答える 4

5

自動ではなく手動ルーティングを使用する主な理由は 2 つあります。

  1. 手動ルーティングを使用すると、REST を使用することを意図したとおりに使用できます。これは、同じ URL が、使用される HTTP メソッド (POST、GET、PUT、DELETE) によって区別される 4 つの異なるアクションにアクセスできることを意味します。自動ルーティングでは、基礎となる関数のメソッド名を公開することになるため、4 つの異なる URL を持つことになります。

  2. 手動ルーティングにより、より検索エンジンに適した URL を生成することもできます。これは通常、slugify メソッドを使用して実現されますが、手動ルーティングを使用すると、この追加情報を無視して、URL の ID 部分だけに集中し、特定のリソースに正しくルーティングすることができます。

もう 1 つの理由は、純粋に表面的なものですが、URL の見栄えが良くなっただけです。それは問題ですか?そう思う人もいるかもしれません。

于 2011-09-02T12:36:03.927 に答える
2

アプリケーションが提示する URL 名前空間はそのユーザー インターフェイスの一部であり、したがってそれを管理するルーティング ルールはアプリケーションのソース コードの残りの部分に属している、という議論が考えられます。また、Ruby on Rails の場合、ルーティング構成はすべて Ruby コードだけであるため、必要に応じて、Apache モジュールだけで可能になるよりも複雑なビジネス ロジックをそこに含めることができます。

于 2011-09-02T09:18:26.747 に答える
1

Restful HTTP では URL が重要です。したがって、自動 URL のみを使用する場合、あまり適切でない URL がたくさんあります。たとえば、GET と POST を区別することで、Play の Users.edit() と User.save() に同じ URL /udpateUsers を使用できます。さらに、/users/show/1 のようなデータバインディングをサポートして、id 1 のユーザーを表示できます。ただし、Play のデフォルトでは、自動的に実行されます。

于 2011-09-02T11:39:09.083 に答える
0

一般的な Web の意味での「モジュール」とは何ですか?

Apache のデフォルトは、ファイルシステムにマップすることです。これは、Apache を実行しているすべてのシステムが持っている唯一のものの 1 つだからです。

于 2011-09-02T21:21:03.757 に答える