2011-03-13 10 views
6

私はRESTful APIを作成中です。私はデザインRESTful URI

http://microformats.org/wiki/rest/urls

を読みますが、このサイトは私に私のAPIを設計する上で十分な「良い」練習を与えるものではありません。 具体的には、地理座標を変換する関数を提供するAPI(これまでのGETメソッドのみ)を記述します。

例: ジオハッシュは

は理にかなって/convert/geohash/u09tvkx0.json?outputformat=latlong従って 座標の単一値表現です。一方、 /convert/latlong.xml?lat=65 & long = 13 & outputformat = UTCには2つの入力値が必要です。

「質問」を参照してください。複数の入力パラメータを必要とする良いAPIを作るには?

「が技術的に」正しいREST URI考慮さの点で

答えて

4

を(& FFツイッターが、失敗した「解析」で良い習慣を「識別」しようとした)、クエリ文字列パラメータを使用するかしないに違いはありません。 RFC 3986では、それは述べて:

クエリコンポーネントは、非階層データが含まれているパスコンポーネント(3.3節)のデータと一緒に、あなたがいる理由だリソース

を識別するのに役立つ、ということ決定的な「ベストプラクティス」を見つけるのが困難な時代です。しかし、多くのREST APIでは、クエリ文字列を使用せずにURIに複数のパラメータが埋め込まれています。 exammpleの場合、車のモデルを識別するために、cars.com/honda/civicのようなURIのウェブサイトが表示されます。その場合、それはであり、非常にです.2とURIの関係がすべて「ハッカー可能」なので、明らかに関係があります。また、リソースを一意に識別するパラメータが1つしかない場合でも、クエリ以外の文字列の手法を使用する方が簡単です。それは検索クエリのようなものなら、私はおそらくクエリ文字列にそれを保持するだろう。このSO questionには、さまざまなアプローチについても興味深い議論があります。

上記の例では、クエリ文字列パラメータを使用します。 RESTは一般的に直感的なURLを持っていますが、実際はRESTのことではありません。 RESTはハイパーメディアに関するもので、HATEOASです。

+0

は、この説明をありがとう!それは私がRESTの "設計原則"との概念的なギャップを埋めました。 HATEOASのことを知らなかったけど、私はその姿勢が好きです。 – JohnDoe

0

は、RESTのAPI

  1. 抽象を設計する際に従うべきいくつかのRESTベストプラクティスがあるコンクリート
  2. CRUD操作
  3. エラー処理
  4. APIのバージョン
  5. フィルタリング
  6. セキュリティ対
  7. Analytics
  8. ドキュメント
  9. 安定性と一貫性
  10. URL構造

Read More

関連する問題