3

先週セットアップしたスクレイパー サービスに欠けていた多くの機能の 1 つは、きれいな URL です。現在、ユーザー パラメーターは?u=を使用してスクリプトに渡されています。しかし、私はそれをやり直すことを考えていたので、利用可能なオプションについてフィードバックを得たいと思っています. 現在、ユーザーに情報を提供する 2 つのページ、update と chart があります。ここで私が思いついた2つの可能性があります。「1234」はユーザーID番号です。技術的な理由により、残念ながらユーザー名は使用できません:

  • http://<tld>/update/1234
  • http://<tld>/chart/1234

また

  • http://<tld>/1234/update
  • http://<tld>/1234/chart

オプション #1 は、概念的には、ユーザー ID を使用して update を呼び出すことです。オプション #2 は、ユーザー ID を操作する動詞を提供しています。

一貫性の観点から、どちらがより理にかなっていますか?


言及されている別のオプションは

  • http://<tld>/user/1234/update
  • http://<tld>/user/1234/chart

これにより、特定のユーザーに関係のないページ用のスペースが提供されます。すなわち

  • http://< tld >/stats
4

9 に答える 9

6

このスキームを使用すると、(行儀の良い)ロボットがサイトをスパイダーするのを簡単に止めることができます。

 http://< tld >/update/1234
 http://< tld >/chart/1234

これは、/robots.txt ファイルに以下を含めるようにセットアップできるためです。

 Disallow /update/
 Disallow /chart/

私にとって、これは見過ごされがちな素晴らしいボーナスです。

于 2008-09-23T21:28:07.767 に答える
5

ディレクトリ構造はユーザーのデータに対する2つの異なる関数であるため、ユーザーID(オプション#2)を使用してリードする傾向があります。これはユーザーのチャートであり、ユーザーの更新です。

ただし、この機能を大幅に拡張する計画があるかどうかはわかりませんが、これはかなりマイナーな点です。

  • 今後はすべて、個々のユーザー向けの追加機能foo、bar、bazになりますか?もしそうなら、オプション#2は上記の理由でより魅力的になります-ユーザーIDはコアデータであり、意味的にそれから始めるのは一種の意味があります。
  • ユーザー主導ではない機能を追加しますか?ヘッダーディレクトリで先頭に立つのは理にかなっているかもしれません-/user/ 1234 / update、/ user / 1234 / chart、/ question / 45678 / activity、/ question / 45678/statsなど。
于 2008-09-22T00:57:23.350 に答える
5

オプション #1 は、一般的な ASP.NET MVC の例と一致します。Model View Controller modelの例のいくつかは、{controller}/{action}/{id} の形式になっています。ルーティングに関する.NET 3.5 クイックスタートには、いくつかの有効なルート パターンを示す表があります。

ルート定義 -- 一致する URL の例

{controller}/{action}/{id} -- /Products/show/beverages

{テーブル}/Details.aspx -- /Products/Details.aspx

blog/{action}/{entry} -- /blog/show/123

{reporttype}/{年}/{月}/{日} -- /sales/2008/1/5

{locale}/{action}
-- /en-US/show

{言語}-{国}/{アクション}
-- /en-US/show

于 2008-09-22T00:52:48.493 に答える
4

私は個人的にこのスタイルが好きです。なぜなら、それはユーザーを同じままに保ちながら、ユーザーに特定の洞察を与えるからです.

  • http://<tld>/1234/update
  • http://<tld>/1234/chart

逆の場合は、/update または /chart の下のすべてを表示してから、ユーザー別に絞り込むことができると思います。

于 2008-09-22T00:50:56.797 に答える
1

後者と一緒に行きます。URLは階層的であることが意図されています(または、少なくとも、ユーザーはローカルディレクトリパスと同様にURLをそのように読み取ります)。ここでは、特定のユーザーのさまざまなビューに焦点を当てているため、「ユーザー」がより一般的な概念であり、最初に表示される必要があります。

于 2008-09-22T00:59:15.093 に答える
1

「URL ルートをどのように構成していますか?」という質問に答えただけです。URL を RESTful で、ハッキング可能で、ユーザーフレンドリーにすることについての私の意見です。この質問に似たようなことを書くよりもリンクしたほうがいいと思うので、リンクです。

于 2008-09-23T21:18:31.610 に答える
0

ユーザーを一覧表示する方法がある場合は、ユーザーセグメントを紹介します。

http://< tld >/users/ <--- user list
http://< tld >/users/1234/ <--- user profile, use overloaded POST on this to update.
http://< tld >/users/1234/chart/ <--- user chart

自分の詳細しか表示できない場合、つまりユーザーが互いに見えない場合は、セッションから推測できるため、ユーザーIDは必要ありません。この場合は次のようになります。

http://< tld >/user/ <--- user profile, use overloaded POST on this to update.
http://< tld >/user/chart/ <--- user chart
于 2008-09-25T22:14:52.490 に答える
0

コンテキストの観点から同意します。アプリケーションの後にパラメーターが続く方が、アイテムの代理キーの後にアイテムが何であるかというコンテキストが続くよりもはるかに理にかなっています。最終的には、プログラムするのがより自然な方をお勧めします。

于 2008-09-22T00:55:56.427 に答える
0

慣例では、目的語/動詞/ID と言うので、次のようにする必要があります。

http://<tld>/user/update/1234

(更新された質問と一致することに気付きました:)

そうです、#3が最良の選択です。

これは、あなたが言及した非ユーザー操作 (stats/) とマルチユーザー操作をサポートします。

http://<tld>/user/list/

于 2008-09-22T01:12:44.077 に答える