c# - WebAPI DTO 响应请求消息传递模式

标签 c# asp.net-web-api json.net dto

我正在阅读一本关于 C# 响应消息模式的书中的一章,当我最近遇到一个使用 Web API 的项目时,我注意到了相似之处,并希望对某些内容有一些清晰的了解。

在书中,作者的代码将请求(在本例中为 CustomerRequest)包装在名为 CustomerRequestService 的类中,该类的工作是处理这些请求(请求只不过是具有诸如搜索词或与相关内容相关的属性之类的类)服务找到客户,不做任何其他事情,非常薄弱/贫血(?)我想你可能会说)。该服务返回一个 CustomerResponse,它包装了一个客户类、来自服务器的响应以及其他将在服务器端用于向用户显示结果的相关信息。

现在,在我正在查看的项目中,有一些网页可以对 Web API Controller 进行 ajax 调用。 Controller 处理这些请求并用自己的响应进行响应。它使用 json.net 进行反序列化。

你可以说这非常相似。在书中,作者将这些请求-响应称为请求-响应,在代码中,它们被命名为 CustomerDto、CustomerResponseDto(当然,DTO 代表数据传输对象)。

当我在线搜索时,似乎当我搜索 webAPI 时,命名标准围绕 DTO 而不是响应/请求。

也许我正在吹毛求疵,或者这是可笑且无关紧要的,但在这样的场景中很好奇其他人如何命名他们的请求/响应类。我喜欢将所有内容都称为请求/响应的想法,即使是在 Web API 架构中,但我不确定这样命名是否正确,我应该将它们称为 Dtos。

我猜唯一的区别是一个东西被序列化并以 JSON 的形式发送回网页,而另一个仍然作为一个类。

谢谢,请告诉我我的解释是否正确!

最佳答案

您可以将它们命名为您想要的任何名称(一如既往,保持一致),但对我来说,在这种情况下使用 DTO 而不是请求/响应更有意义。 DTO 用于双向传输数据 - 从客户端到服务器,反之亦然。所以它在请求和响应中都使用。

关于c# - WebAPI DTO 响应请求消息传递模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23476264/

相关文章:

c# - 如何包含外部 (DLL) EF 实体,以便 VisualStudio 可以自动为它们创建 WebAPI Controller

c# - 为什么 Principal.IsMemberOf() 对某些组返回假阴性?

c# - 使用 SubscribeOn(Scheduler.TaskPool) 时避免在 Rx 中重叠 OnNext 调用

c# - AuthorizeAttribute 的 IsAuthorized 在单元测试中始终为 false

c# - 如何清理 WebAPI 模型上的输入?

c# - 在一个Producer和Multi-Consumer实现中等待所有Consumer都处于waiting状态

c# - 您如何满足 WebApi 查询字符串中的 AND 和 OR 搜索?

c# - Json.NET 不在对象的列表或字典中保留原始类型信息。有解决方法吗?

javascript - 如何忽略在 MVC View 中检测到的自引用循环?

c# - 如何让 Json.NET 将 Int32 转换为 URI