我有一个非常大的用户,有许多字段,如下所示:
public class UserDto implements Serializable {
private Long id;
@Column
private String username;
@Column
private String emailId;
@Column
private String password;
.... many other columns like above with getter/setter
}
我定义了如下验证方法:
@RequestMapping(value = "authenticate", consumes = "application/json", produces = "application/json", method = RequestMethod.POST)
@ApiOperation(value="authenticate user",notes="authenticate user for all roles")
@ApiResponses( {
@ApiResponse( code = 403, message = "BAD_CREDENCIAL_EXCEPTION",response=ExceptionMsgDto.class),
@ApiResponse( code = 404, message = "USERNAME_NOT_FOUND_EXCEPTION",response=ExceptionMsgDto.class)
} )
public ResponseEntity<Object> authenticate(@RequestBody UserDto userDto, HttpServletRequest request)
throws Exception {
/* business logic */
}
当我生成swagger时,它会在请求模型中显示Userdto的所有属性,但我只想显示用户名/密码,并想隐藏其他属性。但是在createUser方法的同一点上,我想显示UserDto的所有属性。
我试图找到解决方案,但没有得到任何,这可能吗?请建议我一些方法来实现这一点。
提前谢谢。
在您的情况下,应该更好地使用特定于请求的DTO,例如InsertUserDTO、UpdateUserDTO等。。显然,除了简单的gette/setter之外,不应该包含任何方法。
在我的例子中,我所做的是因为我不想在我的域对象上添加另一个抽象层(我在控制器方法中传递这些抽象层),我只是想隐藏特定请求类型上的属性,这样它们就不会在Swagger上显示(2.6.1版本)。
以下是我所做的:
我的域对象:
public class Entity {
private String name;
private String hideThis;
public String getName() { return name; }
public void setName(String name) { this.name = name; }
public String getHideThis() { return hideThis; }
public void setHideThis(String hideThis) { this.hideThis= hideThis; }
}
我注释了所有我想隐藏的属性!即使与私有属性一起工作:)
import io.swagger.annotations.ApiModelProperty;
public class EntityInsertRequest extends Entity {
@ApiModelProperty(hidden = true)
private User hideThis;
}
这样,我就可以在昂首阔步的ui中控制请求体的外观。它可以是不同的插入/更新/删除。当然,这并不能阻止用户发送仍然会被序列化的东西!api的留档是干净的,没有额外的DTO层,假设你被保护免受传递到后端的随机值/对象的影响。
以下是我之前的控制器方法:
@RequestMapping(value = "entity", method = RequestMethod.POST)
public Entity storeEntity(@RequestBody final Entity in) {
return entityService.store(in);
}
以下是我的控制器方法:
@RequestMapping(value = "entity", method = RequestMethod.POST)
public Entity storeEntity(@RequestBody final EntityInsertRequest in) {
return entityService.store(in);
}
我有一个类用户 我的控制器 它大摇大摆地显示
问题内容: 我有一些服务器端HTML输出,我无法使用纯CSS来处理,本质上DIV有时适用: 要么 要么 要么 当DIV == 我要删除它。 有任何想法吗? 问题答案: 甚至更好(假设使用jQuery): 编辑:其他答案是好的,但OP想要删除空项目,而不是将其隐藏。
我使用guzzle作为http客户端来测试我的symfony api。 有一个url选项在留档,但我如何通过userid 当我用curl测试的时候 curl-i-X删除http://localhost/us/serenify/web/app_dev.php/userapi/delete/1/6 我的api运行良好,显示了适当的响应。 但是我不能用guzzle测试它,因为我找不到传递参数的选项。
隐藏CardView时如何删除空间?我用android和Firebase做了一个应用程序,我在cardviews中显示Firebase的信息,但当信息不正确时,cardview必须消失。重点是cardview消失了,但仍然在布局中使用了空格,我已经在 setVisibility(GONE)视图变得不可见,但仍然占用空间,但对我来说不起作用。 这是我的布局: 这是mview: 我希望你能帮助我。
如何隐藏自己的请求域名,我想隐藏自己的请求域名,有什么现成的好用的产品吗?做反向代理的,不需求自己搭建,或很小精力搭建的。 我自己用的cloudflare的域名的cname解析过去,但是会出现跨域问题,不知道怎么解决了