可以为REST API使用多个模型吗?

时间:2018-08-28 11:39:20

标签: java rest design-patterns model retrofit

在我的项目中,数据库中有一个用于用户的模型。现在,我有多个请求来获取特定用户。我可以得到true,该响应包含具有较少字段(仅需要这些字段)的JSON列表-这些用户的列表由服务器端算法计算。现在,在客户端:我应该使用两个模型bestUsers(用于一般用途,User)来列出最佳用户,还是只使用一个模型并仅序列化JSON中显示的字段(其余的将为空。

我正在用Java编写并使用改造库。

2 个答案:

答案 0 :(得分:3)

如果您希望客户端具有强类型并始终与服务器同步,这意味着任何“非法”数据都将指示错误,请创建多个模型并严格解析请求。

如果您想将数据添加到后端模型中而不必同时更改客户端或随意遗漏数据,则可以使用单个模型忽略任何丢失或其他数据。

这都是可行的选择,具体取决于您的需求。在生产级的严重应用程序中,您可能更喜欢第一个选项的强类型输入,而在“不太严重的”应用程序中,后者可能会节省一些时间和类型(如果要先将数据添加到后端模型中,则可以进行部署)和前端)。

我假设后端中的“模型”是指API响应,因为实际模型可以是任何东西,而您只是在DTO中返回该模型的视图。

答案 1 :(得分:1)

我认为将模型放在后端和前端是完全可以的。除此之外,很少有前端模型等于后端模型,因为每个模型都代表不同事物的抽象。

后端模型

包含实体

的逻辑和一般抽象

前端模型

表示前端中的实体。这些模型中的许多模型都与后端模型相似,但是它们很少完全相同,此外在前端,我们可能需要用于与用户交互的其他实体