swagger-maven-plugin によって生成された OpenAPI ファイルにオブジェクト クエリ パラメータをリストしようとしています。次のエンドポイントには 2 つのオブジェクトが含まれてRecargaCupoFilter
おりPageable
、各オブジェクトには独自のパラメーターがあります。
@GetMapping(value = "/wallet/recharge", produces = {"application/json; charset=UTF-8"})
@ApiOperation(value = "Allow to query recharge history", produces = "application/json")
@PreAuthorize("isAuthenticated() and (#filter.username == authentication.name or hasAnyRole('ROLE_COORDINADOR_CUPO', 'ROLE_ADMINISTRADOR'))")
@ApiPageable
public ResponseEntity<List<OperacionDTO>> consultarRecargas(RecargaCupoFilter filter, Pageable pageable) {
pageable = PaginationUtil.ensurePageMaxSize(pageable);
Page<OperacionDTO> page = cupoService.consultarRecargaCupo(filter, pageable);
HttpHeaders headers = PaginationUtil
.generatePaginationHttpHeaders(ServletUriComponentsBuilder.fromCurrentRequest(), page);
return ResponseEntity.ok().headers(headers).body(page.getContent());
}
OpenAPI ファイルを生成しようとすると、次のようになります。
/api/wallet/recharge:
get:
summary: "Allow to query recharge history"
description: ""
operationId: "BilleteraResource_consultarRecargas_GET"
produces:
- "application/json; charset=UTF-8"
parameters:
- name: "filter"
in: "query"
required: true
- name: "sort"
in: "query"
description: "Criterios de ordenamiento, con formato: propiedad(,asc|desc).\
\ El orden por defecto es ascendente. Se soportan múltiples criterios de\
\ ordenamiento."
required: false
type: "array"
items:
type: "string"
collectionFormat: "multi"
responses:
200:
description: "successful operation"
schema:
type: "array"
items:
$ref: "#/definitions/OperacionDTO"
SpringFox によって生成されたファイルのようなものが期待されます。
/api/wallet/recharge:
get:
tags:
- billetera-resource
summary: Allow to query recharge historyo
operationId: consultarRecargasUsingGET
produces:
- application/json;charset=UTF-8
- application/json
parameters:
- name: offset
in: query
required: false
type: integer
format: int64
- name: pageNumber
in: query
required: false
type: integer
format: int32
- name: pageSize
in: query
required: false
type: integer
format: int32
PS: アプリを実行せずに Maven ビルド フェーズで OpenAPI ファイルを生成するため、swagger-maven-plugin を使用しています。