我有一个带有两个操作/balance和/transactions的Rest服务,用于获取客户的余额和事务。
此操作返回类型为BalanceResponse和TransactionResponse,这两种类型都是从Response扩展而来
在记录/balance服务操作时,它还列出了second subType(TransactionResponse)中的响应字段。
如何只显示返回类型对应的字段?如果其/balance随后显示(状态、余额和限制),并且其/transaction仅在响应字段中显示(状态和事务列表
有没有人可以告诉我如何在文档中处理基本的继承类型
请找到下面的代码片段和自动生成的RestDoc文档
//Base class
@JsonTypeInfo(use = NAME, include = PROPERTY, property = "type", visible = true)
@JsonSubTypes({
@JsonSubTypes.Type(value = BalanceResponse.class, name = "BalanceResponse"),
@JsonSubTypes.Type(value = TransactionsResponse.class, name = "TransactionResponse")})
public class Response {
public Status status;
....
...
public Response(StatusCode status) {
this.status = new Status(status.getCode(), status.getDescription());
}
}
// Type1: BalanceResponse
@JsonPropertyOrder({ "status", "balance", "restrictions" })
public class BalanceResponse extends Response {
/**
* The balance of this account
*/
public int balance = -1;
/**
* List of limitations on this account.
*/
public List<String> restrictions = Collections.emptyList();
}
// SubType-2 TransactionResponse
public class TransactionsResponse extends Response {
public List<Transaction> transactions;在此处输入图像描述Auto RestDoc Response field
发布于 2020-05-18 15:11:33
您需要在控制器方法中返回一个特定子类型,以便Spring Auto Rest Docs仅输出该类型的字段。如果您返回父类型,那么响应可以是任何内容,并且SARD将输出来自所有类型的所有可能字段。
// returns all subtype fields
public Response anything() {
return new BalanceResponse();
}
// returns only BalanceResponse fields
public BalanceResponse balances() {
return new BalanceResponse();
}https://stackoverflow.com/questions/61757630
复制相似问题