私はイントラネットアプリケーション用のHTTPベースのAPIを設計しています。私はそれが物事の壮大な体系ではかなり小さな関心事であることを認識していますが、:私はURIの単語を区切るためにハイフン、アンダースコア、キャメルケースを使うべきですか?
これが私の最初の考えです:
キャメルケース
ハイフン
アンダースコア
私はすべてをアンダースコアに傾けています。大手プレーヤーの大半がそれらを使っているという事実は説得力があります( https://stackoverflow.com/a/608458/360570 を参照)。
クロール可能なWebアプリケーションのURLにはハイフンを使用する必要があります。どうして?なぜなら、ハイフンは単語を分離し(検索エンジンが個々の単語にインデックスを付けることができるように)、そして 単語文字 ではないからです。アンダースコアはWordの文字であり、Wordの一部と見なすべきです。
Chromeでこれをダブルクリックします。camelCase
Chromeでこれをダブルクリックします:under_score
Chromeでこれをダブルクリックします:ハイフン付き
Chrome(Googleも検索エンジンを作っていると聞いている)が、そのうちの1つが2つの単語であるとしか考えていないのをご覧ください。
camelCase
およびunderscore
も、ユーザーに shift hyphenated
はそうではありません。
それでは、クロール可能なWebアプリケーションでハイフンを使用する必要がある場合、イントラネットアプリケーションで何か別のことをしなければならないのはなぜでしょうか。覚えておくべきことがもう1つあります。
REST APIの標準的なベストプラクティスは、キャメルケースやアンダースコアではなく、ハイフンを使用することです。
これはOreillyによるMark Masseの "REST APIデザインルールブック"から来ています。
さらに、Stack Overflow自体がURLでハイフンを使用していることに注意してください。.../hyphen-underscore-or-camelcase-as-Word-delimiter-in-uris
WordPressと同じように: http://inventwithpython.com/blog/2012/03/18/how-much-math-do-i-need-to-know-to-program-not実際に
私はハイフンをお勧めしますが、私はあなたのリストに載っていない答えも仮定します。
まったく何もしない
/quotationrequests/
、/purchaseorders/
などのURIがあります。?q=foo+bar
のクエリに一致させます。一般に、特にintranetアプリであり、一般的なインターネットアプリではないため、心配するほどの影響はありません。特に、イントラネットはintranetであるため、イントラネットに検索エンジンがアクセスできないようにする必要があるため、SEOは問題になりません。 (もしそうなら、それはイントラネットアプリではありません)。
そして、その価値のあるフレームワークには、これを行うためのデフォルトの方法がすでにあるか、マルチワードURLコンポーネントの処理方法をかなり簡単に変更できるため、あまり心配する必要はありません。
とはいえ、ここにさまざまなオプションがあります。
ハイフン
アンダースコア
キャメルケース
/
で区切られる必要があるためです。 「単語」の長さが2を超えるURLコンポーネントがある場合は、おそらくその概念に適した名前を見つけようとする必要があります。これが両方の長所です。
私はまた、アンダースコアを「好き」にしています。それらについてのすべての前向きな点に加えて、それらには特定の古いスタイルもあります。
だから私はアンダースコアを使用し、単にすべてのアンダースコアをハイフンに書き直すためにあなたのApacheの.htaccessファイルに小さな書き換え規則を追加することです。