繁体   English   中英

输出模型API的属性名称

[英]Property name of output model API

早上好,伙计们,我需要一些建议。 我正在为我的 API 创建输出模板,但我对类的名称感到非常困惑。 例如,我有一个名为 User 的实体。 在输出模型中,我必须返回一个 User 列表,但它不能以实体为中心,而是以我为输出创建的另一个模型为中心。 好吧,我不知道我告诉你的最后一堂课该取什么名字。 我不能称它为用户,因为它与真实实体冲突。 提示?

你的代码中应该至少有 3 层对象,ViewModel、Dto 和 Entities。

每个图层应该只能看到它正下方的图层。

因此,您的服务层可以从您的数据层读取实体,但如果它公开任何对象,则它们应该在 Dto 中。

然后,您的表示层(UI/API 等)将从服务层 (DTO) 读取,并将其对象公开为 ViewModel。

在许多情况下,这意味着所有 3 个对象(Entity、Dto 和 ViewModel)都具有相同的重复属性,但这是意料之中的,尤其是在较小或较新的项目中。

这应该可以解决您的命名问题。

数据层:XXXEntity

服务层:XXXDto

表示层:XXXViewModel

这个解释非常简单,您可以通过多种不同的方式解决这个问题(例如,您可以使用名称空间而不是类后缀)。

我尝试遵循的指导原则是命名应该反映意图 - 而用户仅代表您域中“用户”的概念,而 API 模型旨在成为包含用户信息的 API 有效负载。 在你的立场上,我会考虑像 UserApiModel 或 UserPayload 这样的东西。

*作为补充说明,就我而言,这里最重要的事情是一致性——无论你选择什么,现在对你有意义的事情对你(或其他任何人)来说可能不是最直观的事情以后维护代码. 只要您在所有 API 模型中始终如一地应用您的命名约定,就不要过分强调寻找“正确”的模型——只需选择第一个看起来足够好的,然后继续滚动。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM