web-dev-qa-db-ja.com

REST APIは大文字と小文字を区別するか、区別しないか?

職場では、大文字と小文字を区別するREST apiでエラーが返されることなく、スペルが間違っているパラメーターを無視する問題が発生しました。私の意見では、これは悪いです。

REST APIは大文字と小文字を区別するか、区別しないか?

各アプローチの長所と短所は何ですか?

38
mynkow

他の人が答えたように、APIを作成するURLのHTTP部分では大文字と小文字が区別されます。これは、URIパスがファイルシステムパスにマップされ、ファイルシステムパスでは大文字と小文字が区別されるUNIXの規則に従います。一方、Windowsはパスの大文字と小文字を区別しないという慣習に従います。

ただし、大文字と小文字のみが異なる2つのパスを使用することは、Unixでの習慣として不適切です。さらに、パスは小文字であることが期待されます。

したがって、慣例を破らないようにしましょう。

そして

決してコヘキシストにしないでください。さらに、productsよりもProductsを優先する必要があります。 Productsが404を返すか、301をproductsに戻すか、または単にproductsのエイリアスにするかはスタイルの問題です。それはあなたの選択ですが、一貫性があります。

Stack Overflow APIは、標準的に小文字と大文字と小文字を区別しません。これにより、クライアントにとって生活が最も簡単になると同時に、デフォルトが明確になり、ほとんどのユーザーにとって当然のことと思います。

結局のところ、大文字と小文字の区別から正直に利点 -)名前が重複していますか?

36
Sklivvz

HTTP URLは、スキームとホスト部分では大文字と小文字を区別せず、パス、クエリ、フラグメントでは大文字と小文字を区別します。

http://tools.ietf.org/html/draft-ietf-httpbis-p1-messaging-25#page-19

34
Darrel Miller

職場では、大文字と小文字を区別するREST apiでエラーが返されることなく、スペルが間違っているパラメーターを無視するという問題が発生しました。

その後、それをしないでください。パラメーターを検証します。 「欠落」パラメータを強制します。そもそも悪いリクエストを送らないでください。 APIに準拠すること、特にそのようなレベルのパラメーターの正しいスペルは、大きな負担ではありません。

REST APIは大文字と小文字を区別するか、区別しないか?

前述のとおり、URLは大文字と小文字が区別されるため、ここでは交渉の余地はあまりありません。 url/parametersをアップ/ダウンシフトすると、誰もが混乱し、URLが一意ではなくなります。繰り返しますが、実装者が適切なURLを使用することを期待することは極端な要求ではありません。これらのURLは(ほとんどの場合)ランダムな人が入力するのではなく、コードまたはWebページを実装しています。最後に、これはエントリポイントURLにのみ影響します。残りのURLは、HATEOASをフォローしているため、ペイロードから持ち上げた直接コピーである必要があります。これらのURLを混乱させてはならず、単純に逆戻りしてください。

単純に、大文字と小文字の区別が問題である場合、あなたはそれを間違っています。

各アプローチの長所と短所は何ですか?

利点は、一貫性、明快さ、およびAPIの適切な実施です。欠点はありません。

9
Will Hartung