将swagger与@JsonView
整合起来是可能的吗?我有一个模型,我使用@JsonView
只返回几个字段,但swagger-ui显示洞模型。
这是我的模特:
public class Intimacao extends EntityBase {
@Embedded
@JsonView({View.Intimacao_Lista.class})
private Devedor devedor;
@Embedded
private Sacador sacador;
@Embedded
private Apresentante apresentante;
@Embedded
private Titulo titulo;
}
这是我的控制器:
@GetMapping("/")
@PreAuthorize("hasRole('ADMINISTRADOR') or hasRole('MOTOBOY')")
@JsonView({View.Intimacao_Lista.class})
public List<Intimacao> listar(Principal principal){
System.out.println(principal.getName());
return null;
}
这是swagger-ui的结果
[
{
"apresentante": {
"documento": "string",
"nome": "string"
},
"devedor": {
"bairro": "string",
"cep": "string",
"cidade": "string",
"complemento": "string",
"documento": "string",
"estado": "string",
"logradouro": "string",
"nome": "string",
"numero": "string",
"tipoLogradorouo": "string"
},
"id": 0,
"sacador": {
"chave": "string",
"documento": "string",
"especie": "string",
"nome": "string"
},
"titulo": {
"custas1": 0,
"custas2": 0,
"custas3": 0,
"custas4": 0,
"custas5": 0,
"custas6": 0,
"custas7": 0,
"custas8": 0,
"custas9": 0,
"numero": "string",
"vencimento": "string"
}
}
]
但如果我GET
我的API只会返回devedor
属性,因为@JsonView
将swagger与
@JsonView
整合起来是可能的吗?
是 (部分地) 。
在此pull request合并之后,您可以将其用于:
响应对象(你有那个部分工作)。
@GetMapping("/")
@PreAuthorize("hasRole('ADMINISTRADOR') or hasRole('MOTOBOY')")
@JsonView({View.Intimacao_Lista.class})
public List<Intimacao> listar(Principal principal){
System.out.println(principal.getName());
return null;
}
RequestBody对象( 尚未提出请求, 参见#2918和comment at #2079的一个例子。在你的情况下:
@GetMapping("/")
@PreAuthorize("hasRole('ADMINISTRADOR') or hasRole('MOTOBOY')")
@JsonView({View.Intimacao_Lista.class})
// replace `Views.Principal.class` for the proper value
public List<Intimacao> listar(@JsonView(Views.Principal.class) Principal principal){
System.out.println(principal.getName());
return null;
}