0

../api/zoos動物園用のAPIがあり、特定の動物園の個々の動物にアクセスできるようになっているとしましょう../api/zoos/123/elephants/234。つまり、動物の種類ごとに明確に定義されたAPIがあります。
    ここで、スーパータイプ(抽象クラ​​スAnimal where class Elephant extends Animal)で../api/zoos/123/animals?type="mammal"&legs=4クエリを実行する場合、そのようなメタクエリの種類のAPIを公開するのは良い考えですか?
    このようなアプローチについて2回考えさせられるのは、スーパータイプのAPIは具体的なタイプ全体のメタクエリに実際に役立つ一方で、これは本質的に読み取り専用のクエリであり、拡張性の観点からも、スーパータイプの動物と具体的なタイプの間であると言えます。象には、哺乳類、FourLeggedなど、個別にクエリできる他の多くのタイプがあります。次に、読み取り専用APIをこれらにも公開する必要があるかどうか、または動物クエリにタイプパラメータがあるかどうかを呼び出す必要があります。それは仕事をします。提案してください。

4

1 に答える 1

0

動物の種類ごとに別々のIDがありますか?
つまり、象ID=4と虎ID=4はありますか?

そうでない場合は、これを次のように構成します/zoos/123/animals/234

次に/zoos/123/animals?species=elephant、すべての象を一覧表示し、ランダムに見える可能性のあるIDを持つリンクの配列を取得します。{ /zoos/123/animals/5, /zoos/123/animals/19, /zoos/123/animals/34, /zoos/123/animals/35, /zoos/123/animals/72 }

種間でIDが競合している場合は、動物IDから種IDへの新しいリソースマッピングを作成することをお勧めします。

+----------------------------+
|animal_id|species|species_id|
+----------------------------+
|       1 |  duck |        1 |  => the first duck is /animals/1
|       2 |  frog |        1 |  => the first frog is /animals/2
+----------------------------+

その後も、URL構造を使用できます/zoos/123/animals/234。/ animal/2への直接リンクを提供する/frogs/1ようなページとしてカエルを参照する必要はありません。/animals?order=anura&page=1&limit=10

要約すると、IDはスーパークラスに属します

于 2012-11-30T16:49:35.137 に答える