Web アプリの古い静的 html フロントエンド (いくつかの jquery を使用) を置き換えるために、新しいシングルページ フロントエンドを構築しています。そうしているうちに、API から返されるオブジェクトのタイプに関する問題に遭遇します。
PHP バックエンドからデータを JSON としてエクスポートする場合、エクスポート前にオブジェクトが持っていた型を入れる追加のフィールドを含めます。これを使用して、リクエストしたリソースのさまざまなサブクラスを処理できます。
ただし、親クラスで区別したい場合もあります。次のシナリオを検討してください。
継承ツリー:
Animal
Mammal
Human
Dog
...
Reptile
Crocodile
Snake
...
GET /アニマルズ/
[
{"_type": "Human", "id": 1, "food": "Ice Cream"},
{"_type": "Human", "id": 2, "food": "Steak"},
{"_type": "Human", "id": 3, "food": "Peanut Butter"},
{"_type": "Dog", "id": 4, "food": "Horse Poop"}
{"_type": "Crocodile", "id": 5, "food": "Humans"}
]
すべての動物を表示したいが、たとえばすべての哺乳類を強調表示したい特定の UI がある場合、どの動物が哺乳類であるかがわからないため、問題が発生します。
私たちが思いついた最も簡単な解決策は、バックエンドからオブジェクトをエクスポートするときに継承チェーンを含めることです。おそらく次のようになります。
{
"_type": "Human",
"id": 10,
"food": "Ice Cream",
"_parentClasses": "Animal.Mammal.Human"
}
これが特に優れたソリューションだとは思いませんが、実装と使用が簡単で、堅牢に見えます。
これは良い/良い/悪いアイデアだと思いますか? また、この問題にどのように取り組みましたか?