需求說明:公司使用Swagger(接口文檔在線生成工具),為了讓前端同事更好的了解傳入參數的詳細情況,應用項目中接口(eg:分頁查詢接口)中使用dto對象來接受前端傳入的參數,但是后面中心項目中接口是用json字符串接受的,也就是說需要把dto對象轉為JSON字符串,這時JSON.toJSONString()就用上了。
應用項目接口:
/** * 分頁查詢xxx列表 * @param pageNum 起始頁 * @param pageSize 每一頁的記錄數 * @return RestResponse<PageInfo<BandRespDto>> */ @ApiOperation(value = "分頁查詢xxx信息列表", notes = "分頁查詢xxx信息列表") @ApiImplicitParams({ @ApiImplicitParam(name = "pageNum", value = "起始頁", dataType = "integer", paramType = "query"), @ApiImplicitParam(name = "pageSize", value = "每一頁的記錄數", dataType = "integer", paramType = "query") }) @GetMapping(value = {"/list"}, produces = "application/json") RestResponse<PageInfo<BandRespDto>> queryBandListByPage(
@Validated BandCreateReqDto bandCreateReqDto,
@RequestParam(name = "pageNum", defaultValue = "1") Integer pageNum, @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize){ return iBandService.queryBandListByPage(bandCreateReqDto,pageNum, pageSize); }
中心項目接口:
/** * 分頁查詢xxx列表 * * @param filters 查詢參數(json格式) * @param pageNum 分頁頁碼 * @param pageSize 分頁行數 * @return RestResponse<PageInfo<BandRespDto>> */ @GetMapping(value = {"/list"}, produces = "application/json") @ApiImplicitParams({ @ApiImplicitParam(name = "filter", value = "查詢參數(json格式字符串)", dataType = "string", paramType = "query"), @ApiImplicitParam(name = "pageNum", value = "當前頁碼", dataType = "integer", paramType = "query"), @ApiImplicitParam(name = "pageSize", value = "分頁行數", dataType = "integer", paramType = "query") }) @ApiOperation(value = "分頁查詢xxx列表", notes = "分頁查詢xxx列表") RestResponse<PageInfo<BandRespDto>> queryBandListByPage(
@RequestParam(name = "filter") String filter,
@RequestParam(name = "pageNum", defaultValue = "1") Integer pageNum, @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize); }
使用JSON.toJSONString()
@Override public RestResponse<PageInfo<BandRespDto>> queryBandListByPage(BandCreateReqDto bandCreateReqDto, Integer pageNum, Integer pageSize) { return bandQueryApi.queryBandListByPage(JSON.toJSONString(bandCreateReqDto),pageNum, pageSize); }