1. ホーム
  2. rest

[解決済み】URIの単語の区切り文字にハイフン、アンダースコア、キャメルケースのどれを使うか?

2022-03-23 22:06:59

質問

イントラネットのアプリのためにHTTPベースのAPIを設計しています。全体から見ればかなり小さな懸念事項であることは理解していますが URIの単語の区切りには、ハイフン、アンダースコア、キャメルケースのいずれを使用すべきでしょうか?


以下は私の最初の感想です。

キャメルケース

  • サーバーが大文字と小文字を区別しない場合、問題が発生する可能性があります。
  • は、クエリ文字列のキーでかなり広く使われているようです ( http://api.example.com?**searchQuery**=... )、他のURIの部分にはない

ハイフン

  • 他の選択肢よりも美観に優れている
  • URIのパス部分で広く使われているようです。
  • ハイフン付きのクエリ文字列のキーは見たことがありません。
  • おそらく SEO対策になる(これは俗説かもしれない)

アンダースコア

  • プログラミング言語が扱いやすくなる可能性がある
  • いくつかの人気のあるAPI(Facebook、Netflix。 <ストライク スタックエクスチェンジ など)は、URIのすべての部分にアンダースコアを使用しています。

私は、すべてにおいてアンダースコアに傾倒しています。ほとんどの大手企業がアンダースコアを使用しているという事実は、説得力があります( https://stackoverflow.com/a/608458/360570 ).

解決方法は?

クローラブルなウェブアプリケーションのURLには、ハイフンを使用する必要があります。なぜでしょうか?なぜなら、ハイフンは単語を区切り(検索エンジンが個々の単語をインデックスできるように)、ハイフンは 単語文字 . アンダースコアは単語文字であり、単語の一部とみなされることを意味します。

Chromeでこれをダブルクリック: camelCase

Chromeでこれをダブルクリックすると、under_scoreが表示されます。

Chromeでダブルクリックすると表示されます。

Chrome(Googleも検索エンジンを作っているそうです)は、このうちの1つを2つの単語としか考えていないことがわかりますか?

camelCase そして underscore を使用することも必要です。 シフト キーであるのに対し hyphenated にはありません。

では、クローラブルなウェブアプリケーションでハイフンを使うべきなのに、なぜイントラネットアプリケーションでわざわざ違うことをする必要があるのでしょうか?覚えることが一つ減りました。