【发布时间】:2019-11-15 23:05:38
【问题描述】:
我已经使用 Spring & Swagger 构建了一个 rest api。持久性是通过 Hibernate 实现的。其余的 api 以不同的格式公开数据,然后它在数据库中,所以我使用的是 dto 模式。客户与 CustomerDto。一切都很好。我用@ApiModel(value="Customer") 掩盖了 Swagger 中的 CustomerDto。这一切也都很好。
这就是问题所在。我正在使用@Size、@NotNull 等验证注释。所以我得到了不错的 400 响应 json:
{
"timestamp": "2019-11-15T22:25:37.943+0000",
"status": 400,
"error": "Bad Request",
"errors": [
{
"codes": [
"NotNull.customerDto.firstName",
似乎 MethodArgumentNotValidException 不知道 @ApiModel 注释,因此它将对象名称显示为 customerDto。
有什么办法可以修补响应或类似的东西吗?我知道我可以捕获 400 异常并建立自己的响应,但我宁愿不重新发明整个轮子来重现整个 json。
我的公司与金融机构合作,因此出于安全目的,我们不应该透露应用内部信息。
编辑:应该明确表示我不想替换库存 json,我只想将 customerDto 更改为 customer。除了消息之外,json 中还有一些元素,比如代码和东西。也试图接近那些。
【问题讨论】:
-
@Matthias 似乎所有这些建议都替换为不同的 json,因此它丢失了所有代码、参数和东西。尽量避免重新创建所有这些。