假设rest控制器类中有一个注册方法,如下所示。
@PostMapping("/signup")
fun authenticateSignUp(@RequestBody command: RegisterUserCommand): CompletableFuture<String> {
return commandGateway.send<String>(command)
}
所以它需要请求主体,即RegisterUserCommand。
data class RegisterUserCommand(
val userId: String,
val balance: BigDecimal,
val username: String,
private val email: String,
private val password: String
)
我想忽略一些字段,比如userId,balance,这样我以后就可以在控制器中像这样生成它
@PostMapping("/signup")
fun authenticateSignUp(@RequestBody request: RegisterUserCommand): CompletableFuture<String> {
val command = request.copy(userId = ObjectId.get().toHexString(), balance = BigDecimal.ZERO)
return commandGateway.send<String>(command)
}
是否有任何注释可以忽略此字段,这样即使我没有在请求正文中放置userId和balance,它也不会返回错误的请求
我想你可以用将变量标记为可空
操作员。但我建议使用DTO。
data class RegisterUserDto(
val username: String,
private val email: String,
private val password: String
)
正如@flaxel正确指出的,您可以使用?
从静态编程语言,我相信添加@JvmOverload构造函数
到它。
但是,在我看来,使用DTO
无疑是最好的解决方法。控制器
的输入不应该是命令
,而应该是带有感兴趣字段的DTO
。使用增强值构建命令的方式不应受到影响。
在本例中,您可能会遇到这样的情况(还添加了@TargetAggregateIdentifier
,因为您可能错过了它):
data class RegisterUserCommand(
@TargetAggregateIdentifier
val userId: String,
val balance: BigDecimal,
val username: String,
private val email: String,
private val password: String
)
...
data class RegisterUserDto(
val username: String,
private val email: String,
private val password: String
)
...
@PostMapping("/signup")
fun authenticateSignUp(@RequestBody request: RegisterUserDto): CompletableFuture<String> {
val command = new RegisterUserCommand // build the command the way you want it
return commandGateway.send<String>(command)
}
我有Solr 5.3.1,需要查询除某些字段之外的所有字段(我需要在某些字段中搜索而不是以这种方式检索字段[/?q=query&fl=field1,field2,field3]) 2.[以下解决方案有效,但需要更多时间] 3.我在data-config.xml中设置了indexed=“false”,它只忽略此字段中的搜索,但是当我搜索所有字段http://localhost:8983/solr/t
我正在使用Java和Spring构建一个RESTAPI,我需要在我的控制器中处理一个POST请求,但我需要从该请求中提取主体,它是一个JSON,也是该请求的“来源”, 我有几个问题:首先是如何获取该请求的来源(我猜是在标题中移动的url?),是否有与@RequestBody类似的注释?。 我的第二个问题是,在这种post方法中,通常应该返回什么对象作为响应。
我有一个用@ControllerAdvice注释的类和用@ExceptionHandler注释的方法来处理服务代码引发的异常。在处理这些异常时,我希望获得@RequestBody,它是请求POST操作的一部分。 我尝试为发送的请求创建POJO类,并尝试在异常处理程序类中检索,但它返回null。 遵循本查询中给出的相同解决方案~如何在@ExceptionHandler(Spring REST)中获取
我有一堆控制器,比如:
我想知道是否可以使用此方法忽略字段,因为我有一个要忽略的字段列表,在同一个类中,那么我该如何做呢? 我正在使用 谢谢
项目中经常会生成一些Git系统不需要追踪(track)的文件。典型的是在编译生成过程中 产生的文件或是编程器生成的临时备份文件。当然,你不追踪(track)这些文件,可以 平时不用"git add"去把它们加到索引中。 但是这样会很快变成一件烦人的事,你发现 项目中到处有未追踪(untracked)的文件; 这样也使"git add ." 和"git commit -a" 变得实际上没有用处,同时