我们正在构建一个新的单页前端来替换我们网络应用程序的旧静态 html 前端(带有一些 jquery)。这样做时,我们遇到了一个关于我们从 api 返回的对象类型的问题。
当从我们的 PHP 后端将数据导出为 JSON 时,我们包含一个额外的字段,我们在其中放置对象在导出之前的类型。我们可以使用它来处理我们请求的资源的不同子类。
然而,有时我们也想区分父类。考虑以下场景:
继承树:
Animal
Mammal
Human
Dog
...
Reptile
Crocodile
Snake
...
获取/动物/
[
{"_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"
}
虽然我不认为这是一个特别好的解决方案,但它很容易实现和使用,而且看起来很健壮。
您认为这是一个好/好的/坏主意吗?您是如何解决这个问题的?