我偶然发现了一个问题,随着时间的流逝,我觉得它变得越来越糟。我遇到的问题是API调用可能会给出相同的结果,但属性却略有不同,而且我在弄清楚如何使用@ngrx来实现这一点时遇到了问题。
示例:
system user
。
/api/activities
来获取活动。System user
使用/api/su/activities
提取活动。activity_categories
。SU
登录之前,他们使用/api/activities
提取活动并将结果存储在商店中。SU
登录,现在需要每个活动的额外数据(activity_categories),并检查活动是否已被获取。如果是,则跳过API调用(/api/su/activities
)。SU
现在出现错误,因为每个活动都缺少类别(activity ['activity_categories'])。那么,有什么聪明的方法可以解决这个问题吗? :)
答案 0 :(得分:1)
对此有两种可能的解决方案。最简单的方法是忽略以下事实:它们是“相同”数据,而是将两组不同的活动数据存储为完全独立的事物,其中一组是丰富的,另一组不是。
另一个选择是重构API,以提供一个端点,该端点仅返回活动的额外类别数据(例如/api/su/activitiycategories
),然后如果您已经具有基本活动数据,则仅调用第二个端点状态。然后,您将使用额外的类别数据更新状态数据。
您可能需要在状态中存储一个标志(例如“ activitiesEnrichedWithCategories”)以控制是否需要执行该调用。如果基本活动不存在,那么您将需要同时进行两次调用以获取丰富的数据或改为调用/api/su/activitycategories/
端点。
第二个选项的实现要复杂得多,但是如果有很多活动,可能值得付出额外的努力。