3

生物学データのデータベースの検索インターフェイスを実装する RESTful Web サービスを構築したいと考えています。

典型的な検索要求には、10 ほどのデータ属性が含まれる可能性があります。たとえば、学名で検索し、検索を水深 100m 未満に限定します。私の最初の本能は、クエリ文字列にすべての属性を含めることです。たとえば、 ?searchType=sciname&sciname=mola+mola&maxdepth=100&mindepth=0 です。

ただし、クエリ文字列は非 RESTful と見なされます。http://rest.blueoxen.net/cgi-bin/wiki.pl ?QueryStringsConsideredHarmful を参照してください。

検索用の RESTful URL 設計などの以前の SO の議論を見てきましたが 、この点についてはまだ明確ではないので、私の質問は次のとおりです。

任意の数のフィルタリング値が存在する可能性がある検索サービスの RESTful URL について、受け入れられている標準またはパターンはありますか?

4

1 に答える 1

10

Web の REST スタイルでは:

  • request-uriのパスコンポーネントは、特定のリソースを識別します。
  • request-uriのクエリ文字列コンポーネントは、そのリソースを提示するときに行われた特定のフィルターまたは変更を識別します。
  • Acceptヘッダーは、指定されたようにフィルタリングされた特定のリソースを表示する特定のコンテンツ タイプを識別します。
  • Accept-Languageヘッダーは、指定されたようにフィルター処理された特定のリソースを表示する特定の言語を識別します。

あなたの質問に答えるには:

GET /species?searchType=sciname&sciname=mola+mola&maxdepth=100&mindepth=0

は完全に適切です。

于 2009-12-01T16:30:52.140 に答える