我目前正在设计一个将由ReactJS应用程序使用的REST API。两个实际端点如下:
/species
id
types
[name, name] // each specy has 2 types, contained in an array
/types
name
我们可以看到,我们的端点提供了所有type
资源的列表,species
端点提供了特定规格的type
。
在我的ReactJS应用程序中,我将有一个Select字段,其中包含types
列表(通过/types
端点获取),以及所有species
获取的列表来自/species
。然后,用户可以通过在“选择”字段中选择类型来过滤物种。
在Select组件中维护types
列表是否仍然干,并且在species
组件的数组中包含Specy
列表?或者我应该找到一种方法从types
中注入从他们自己的端点获取的specy
?
答案 0 :(得分:0)
如果您只有一个/species
端点,并且您创建了所有类型的列表,则无法覆盖分配了零种类型的情况。这可能是也可能不是问题。您还必须始终加载所有物种以获得完整的类型列表。这可能会浪费很多带宽。
相反,请考虑以下方法:
端点/types
为您提供所有可用类型的列表,这是您最初填写下拉列表所需的全部内容。现在,一旦用户选择了特定类型,您就可以调用端点/types/{typeName}/species
,它会为您提供分配给{typeName}
类型的所有物种的列表。同样,您只是加载了用户想要查看的数据块。
使用这种方法,您可以避免在应用程序达到目的之前必须在前端聚合数据并且必须下载完整的数据集。
旁注:物种is also species的单数,不是特别的。 : - )