当前位置: 首页 > 知识库问答 >
问题:

mvc验证数据类递归Kotlin

盛琪
2023-03-14
data class Base(@field:Length(min = 2, max = 100) val name:String)    

data class PizzaCreate(
    val id: Long,
    @field:Length(min = 2, max = 100) val name: String,
    val description: String,
    val price: Int,
    @Valid val base: Base

@RestController
@RequestMapping("/pizza")
class PizzaController(val pizzaService: PizzaService) {

@PostMapping
fun post(@RequestBody @Valid pizza: PizzaCreate) = pizzaService.addPizza(pizza)

}
  @Test
fun `should add pizza `() {

    val pizza = easyRandom.nextObject(PizzaCreate::class.java).copy(id = 1, name="aaa", base = Base(""))
    val pizzaOut = PizzaOut(id=1,name=pizza.name,description = pizza.description,price = pizza.price)

    `when`(pizzaService.addPizza(pizza)).thenReturn(pizzaOut.toMono())

    webTestClient.post()
            .uri("/pizza")
            .bodyValue(pizza)
            .exchange()
            .expectStatus().isBadRequest
            .returnResult<PizzaOut>().responseBody
}

共有1个答案

史昊焱
2023-03-14

对Base的验证应为@field:valid val Base:Base而不是@valid val Base:Base

字段:指定批注应用于字段not construc

参考:

 类似资料:
  • 这种类型的验证有效吗? 更新: StackTrace的一部分: 属性可以解决这个问题。但它仍然不是。

  • 我们都知道,Spring MVC与Hibernate验证器和JSR-303集成得很好。但正如有人所说的,Hibernate验证器仅用于Bean验证,这意味着更复杂的验证应该推送到数据层。这类验证的例子:业务密钥唯一性、记录内依赖性(这通常指向DB设计问题,但我们都生活在一个不完美的世界中)。即使是像字符串字段长度这样的简单验证也可能由某些DB值驱动,这使得Hibernate验证器无法使用。 所以我

  • 本文向大家介绍ASP.NET MVC 数据验证及相关内容,包括了ASP.NET MVC 数据验证及相关内容的使用技巧和注意事项,需要的朋友参考一下 一、数据验证 数据验证的步骤在模型类中添加与验证相关的特性标记在客户端导入与验证相关的js文件和css文件使用与验证相关的Html辅助方法在服务器端判断是否通过服务器端验证常用的验证标记                     Required:非空验

  • 我试图让Kotlin在spring-data-rest项目上使用JSR303验证。 给定以下数据类声明: 提前感谢您的帮助!

  • 编写验证器 验证器是一个可调用的对象,它接受一个值,并在不符合一些规则时抛出ValidationError异常。验证器有助于在不同类型的字段之间重复使用验证逻辑。 例如,这个验证器只允许偶数: from django.core.exceptions import ValidationError def validate_even(value): if value % 2 != 0:

  • 简介 Lumen 提供了数种不同的方法来验证传入应用程序的数据。默认情况下,Lumen 的基控制器类使用名为 ProvidesConvenienceMethods 的 trait,其提供了一种便捷的方法来使用各种强大的验证规则验证传入的 HTTP 请求。 一般来说,Lumen 中的数据验证与 Laravel 中的数据验证并无多大区别,因此你应该查阅 完整的 Laravel 数据验证文档 以熟悉其使