gpt4 book ai didi

java - Http Controller 参数对象定义为DTO还是其他?

转载 作者:行者123 更新时间:2023-12-02 01:50:07 29 4
gpt4 key购买 nike

RPC在Internet传输层,使用dto是合理的。 Http Controller ?如果所有 Controller 都被前端使用,参数定义为VO?

最佳答案

我猜您是在问剩余 Controller 方法的参数是否可以是 DTO。

这取决于您使用的框架。 http 参数是字符串。

如果框架有一个实用程序机制(可能是一个注释),可以让您将收到的 http 参数映射到您作为其余 Controller 方法 arg 提供的 DTO 中,那么 arg 作为 DTO 就没有问题。

如果框架没有这样的实用程序(它只是将每个 http 参数映射到其余 Controller 方法的字符串参数中),那么您必须在其余 Controller 方法中手动构建 DTO。

我不知道Spring是否有这样一个类似于@PathVariable但用于将多个请求参数收集到DTO对象中的实用注释。

更新:

Spring @RequestBody 注释将 JSON 反序列化为剩余 Controller 方法的 java 对象参数。所以,用@RequestBody注释的arg是一个DTO。

DDD 没有说明哪种类型必须是 Rest api 的参数。它们可以是 DTO 或字符串,这并不重要。如果它们是字符串,则您必须自己构建 DTO。使用 @RequestBody,Spring 框架会为您完成此操作。

关于java - Http Controller 参数对象定义为DTO还是其他?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53101054/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com