Web api:检索 m2m 模型与检索主模型
Web api: Retrieve m2m model vs Retrieve main model
我有一个 code-design 问题。假设我们有一个带有 Web 服务的 Web 应用程序 (rest api) 和模型 User、Job 以及 JobFavorite。 JobFavorite 模型是一个包含字段 user 和 job 的 m2m 模型,这意味着用户可以将工作标记为最喜欢的。
假设我们有两种观点。
工作列表视图,用户可以在其中看到所有适合他的工作。
过滤后的职位列表视图,用户只能看到已标记为收藏的职位。
在这两个视图中,用户可以执行相同的操作:申请工作和(取消)将工作标记为收藏。
在第一个视图中,我们对 api 进行 ajax 调用以检索所有可用的作业。这个问题与第二种观点有关。
我们应该调用作业 api 并检索作业模型,还是调用 JobFavorite api 并检索 JobFavorite 模型然后使用模板中的 JobFavorite.job 字段?
我希望问题清楚并遵循提问规则。
更新:类伪代码:
class Job():
owner - foreign key(User)
...etc
class JobFavorite():
user - foreign key(User)
job - foreign key(Job)
class User():
name
phone
除非绝对必要,否则在这种特殊情况下,我不会使用新模型/api/控制器 (JobFavourite) 使前端问题复杂化。我会在 Job 的控制器上制作 "favourite" 过滤器。
因此,在过滤的职位列表视图中,您调用 GET /jobs?favourites=true 以仅获取最喜欢的用户职位。然而,在后端,这可以使用不同的策略来实现。您可以使用单独的 JobFavourite 模型来存储收藏夹。或者在 User 模型上制作 json / array 字段来存储他的收藏夹(谨慎使用后两者)。
这个建议还有另一个好处。将 is_favourite "flag" 作为一个过滤器,您可以统一处理作业(在这里应用另一个过滤器很容易)。
我有一个 code-design 问题。假设我们有一个带有 Web 服务的 Web 应用程序 (rest api) 和模型 User、Job 以及 JobFavorite。 JobFavorite 模型是一个包含字段 user 和 job 的 m2m 模型,这意味着用户可以将工作标记为最喜欢的。
假设我们有两种观点。
工作列表视图,用户可以在其中看到所有适合他的工作。
过滤后的职位列表视图,用户只能看到已标记为收藏的职位。
在这两个视图中,用户可以执行相同的操作:申请工作和(取消)将工作标记为收藏。
在第一个视图中,我们对 api 进行 ajax 调用以检索所有可用的作业。这个问题与第二种观点有关。
我们应该调用作业 api 并检索作业模型,还是调用 JobFavorite api 并检索 JobFavorite 模型然后使用模板中的 JobFavorite.job 字段?
我希望问题清楚并遵循提问规则。
更新:类伪代码:
class Job():
owner - foreign key(User)
...etc
class JobFavorite():
user - foreign key(User)
job - foreign key(Job)
class User():
name
phone
除非绝对必要,否则在这种特殊情况下,我不会使用新模型/api/控制器 (JobFavourite) 使前端问题复杂化。我会在 Job 的控制器上制作 "favourite" 过滤器。
因此,在过滤的职位列表视图中,您调用 GET /jobs?favourites=true 以仅获取最喜欢的用户职位。然而,在后端,这可以使用不同的策略来实现。您可以使用单独的 JobFavourite 模型来存储收藏夹。或者在 User 模型上制作 json / array 字段来存储他的收藏夹(谨慎使用后两者)。
这个建议还有另一个好处。将 is_favourite "flag" 作为一个过滤器,您可以统一处理作业(在这里应用另一个过滤器很容易)。