0

以下を提供するREST Webサービスを構築したいと思います。

  1. ネストされたコレクション、
  2. エントリ内のコレクション。

入れ子のコレクションは、概念を一般的なものから特定のものに絞り込むために使用されます。次に例を示します。

/vehicles/road_vehicles/cars/AB-123-CD

アイデアは、Web サービスのルートに表示される概念の数を制限することです。

エントリ内のコレクションは、エントリの一部にアクセスするために使用されます。次に例を示します。

/cars/AB-123-CD/engine/spark_plugs/1

ID が「AB-123-CD」である車の最初のスパーク プラグの URI として適している可能性があります。ネストされたコレクションは、「コンテナ」の削除がそのすべての部分の削除を意味する場合はいつでも意味があります。

DELETE /cars/AB-123-CD

明らかに削除します:

/cars/AB-123-CD/engine/spark_plugs/1

車の他のすべての部品 (車は DELETE によってスクラップに送られると考えてください)。

質問: この種の「クリーンな URI」は非常に一般的なニーズですが、そのような Web サービスの構築を簡素化するソフトウェアはありますか?

Atom Publication Protocol (AtomPub) は、Web サービスのビジョンが私が望むものに非常に近い場合に適している可能性があるようですが、ネストされたコレクションをサポートしていないようです。

4

1 に答える 1

1

記事「API 設計の未来: オーケストレーション レイヤーは、クエリ ベースの API が要求元の開発者の手に力を与えていることを示していますが、その力は限られています。AtomPub ビルド ツールでは、クエリ パラメーターと共に AtomPub を使用できます。「APIs Query-based」を検索すると、いくつかの例が見つかりましたが、実際の定義は見つかりませんでした。

https://developers.google.com/google-apps/contacts/v3/#retrieving_contacts_using_query_parameters
http://resources.arcgis.com/en/help/arcgis-rest-api/index.html#/Query_Related_Records_Map_Service_Dynamic_Layer/02r3000000nt000000/

著者はさらに、経験ベースの API にはデバイス固有のラッパーがありますが、それらはデバイス チームによって設計、実装、および所有されていると述べています。おそらく、あなたの問題にアプローチする方法は、情報のさまざまなビューを提示するさまざまな AtomPub エンドポイントを作成することですか?

于 2014-03-16T00:25:37.750 に答える