日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

使用 Feign 调用分页接口报错:Method has too many Body parameters(亲测)

發布時間:2024/9/20 编程问答 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 使用 Feign 调用分页接口报错:Method has too many Body parameters(亲测) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、背景

  • 接口定義:

@ApiOperation(value = "分頁查詢會話")

@PostMapping(Routes.SESSIONS_QUERY)

JsonResult<Pagination<SessionInfo>> querySessions(@RequestBody @Valid SessionsQo qo,

@PageableDefault(size = 20, sort = "id", direction = Sort.Direction.DESC) Pageable pageable);

  • 服務消費方調用報錯:

Method has too many Body parameters: public abstract com.xingren.common.data.JsonResult com.xingren.xxx.yyy.contract.api.controller.ISessionController.querySessions(com.xingren.xxx.yyy.contract.qo.SessionsQo,org.springframework.data.domain.Pageable)

二、解決

通言七墨過搜索、https://qimok.cn調研,目前有三種解決方法:

1、將分頁屬性直接通過入參傳遞,接口定義如下:

@ApiOperation(value = "分頁查詢會話")

@PostMapping(Routes.SESSIONS_QUERY)

JsonResult<Pagination<SessionInfo>> querySessions(@RequestBody @Valid SessionsQo qo,

@RequestParam("page") Integer page, @RequestParam("size") Integer size, @RequestParam("sort") Sort sort);

2、將分頁對象冗余在Qo中(通過繼承實現):

@Data

@NoArgsConstructor

@ApiModel(value = "查詢會話")

public class SessionsQo extends PageableParam {

@ApiParam(value = "會話id列表")

private List<Long> sessionIdIn = Lists.newArrayList();

...

}

3、通過注解傳遞(參考:Issue):

  • 服務提供方定義注解:
  • @Target(ElementType.PARAMETER)

    @Retention(RetentionPolicy.RUNTIME)

    public @interface PageableParam {

    }

  • 服務提供方定義接口:
  • @ApiOperation(value = "分頁查詢會話")

    @PostMapping(Routes.SESSIONS_QUERY)

    JsonResult<Pagination<SessionInfo>> querySessions(@RequestBody @Valid SessionsQo qo,

    @PageableParam @SpringQueryMap Pageable pageable);

  • 服務消費方定義processor:
  • @Bean

    public PageableParamProcessor pageableParamProcessor() {

    return new PageableParamProcessor();

    }

    public static class PageableParamProcessor implements AnnotatedParameterProcessor {

    private static final Class<PageableParam> ANNOTATION = PageableParam.class;

    @Override

    public Class<? extends Annotation> getAnnotationType() {

    return ANNOTATION;

    }

    @Override

    public boolean processArgument(AnnotatedParameterContext context, Annotation annotation, Method method) {

    int parameterIndex = context.getParameterIndex();

    MethodMetadata data = context.getMethodMetadata();

    data.queryMapIndex(parameterIndex);

    return true;

    }

    }

  • 服務消費方自定義PageableUtil:
  • public class PageableUtil extends PageRequest implements Map<String, Object> {

    public static final String PAGE = "page";

    public static final String SIZE = "size";

    public static final String SORT = "sort";

    @Delegate

    protected Map<String, Object> delegate = Maps.newHashMap();

    public PageableUtil(int page, int size, Sort sort) {

    super(page, size, sort);

    delegate.put(PAGE, page);

    delegate.put(SIZE, size);

    if (Objects.nonNull(sort)) {

    delegate.put(SORT, sort.toString().replace(": ", ","));

    }

    }

    public PageableUtil(int page, int size) {

    super(page, size);

    delegate.put(PAGE, page);

    delegate.put(SIZE, size);

    }

    }

    • 定義PageableUtil原因:主要是因為Feign對QueryMap類型參數的序列化和反序列化的言七墨方式與Sort.Order的不兼容,導致排序失效。
  • 服務消費方調用方式:
  • SessionsQo qo = SessionsQo.builder().sessionIdIn(Collections.singletonList(20L)).build();

    JsonResult<Pagination<SessionInfo>> pageInfo = sessionContract.querySessions(qo, new PageableUtil(0, 5, new Sort(Sort.Direction.DESC,

    來源:使用 Feign 調用分頁接口報錯:Method has too many Body parameters | 七墨博客

    總結

    以上是生活随笔為你收集整理的使用 Feign 调用分页接口报错:Method has too many Body parameters(亲测)的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 国产无遮挡又黄又爽在线观看 | 日韩中文字幕有码 | 中文字幕五码 | 女同hd系列中文字幕 | 五月天色视频 | 波多野结衣视频在线播放 | 中文字幕一区二区久久人妻 | 精品国产理论 | 久草资源网| 精品欧美激情精品一区 | 狠狠躁夜夜躁人人爽天天高潮 | 精品国产va久久久久久久 | 美女啪啪无遮挡 | 九色porny丨精品自拍视频 | 国产成人久久精品77777综合 | 奶水旺盛的少妇在线播放 | 欧美一区三区三区高中清蜜桃 | 日本成人中文字幕 | 男人猛进女人爽的大叫 | 前任攻略在线观看免费完整版 | 在线观看成人免费 | 九九视频精品在线 | 久久影院视频 | 成人乱码一区二区三区 | 国产成人精品一区二区三区 | 久久国产一区 | 精品国产乱码久久久 | 精品少妇一区二区三区 | 大地资源二中文在线影视观看 | 天天干天天操天天爱 | 91成人免费在线视频 | 欧美大片高清免费观看 | 婷婷综合激情 | 欧美亚洲少妇 | 成年精品| 乱子伦视频在线看 | 超碰av在线播放 | 免费人成又黄又爽又色 | 女女同性高清片免费看 | 两女双腿交缠激烈磨豆腐 | 67194午夜| 国产一区二区视频免费在线观看 | 天堂一区在线观看 | 亚洲一级免费毛片 | 第一次破处视频 | 美女主播福利视频 | 永久免费视频网站 | 中文字幕久久久久久久 | 夜夜嗨av一区二区 | 欧美激情一区二区三区免费观看 | 人妻少妇偷人精品视频 | 亚洲色图影院 | 日本黄色视屏 | 日韩一区二区三区在线视频 | yy4138理论片动漫理论片 | 欧美比基尼 | 日本美女操 | 日韩av在线第一页 | 成人av网站在线播放 | 欧洲三级在线 | 欧美大片免费 | 樱桃视频污污 | 日韩精品极品视频在线观看免费 | 亚洲熟妇无码爱v在线观看 九色福利 | 欧美亚洲福利 | 中文高清av | 精品嫩模一区二区三区 | av黄色天堂| 中文字幕欧美在线 | 欧美大尺度视频 | 日本wwwxxx | 日本不卡一区在线 | 日韩第三页 | 亚洲第一偷拍 | 中文天堂在线播放 | 欧美日韩亚洲精品内裤 | 色就色综合 | 亚州av成人 | 性xxx欧美 | 免费一级淫片 | 四虎影视永久 | 日本午夜精品 | 国产一级做a爰片久久毛片男 | 午夜色综合 | 色视频线观看在线播放 | 亚洲成人av中文字幕 | 93久久精品日日躁夜夜躁欧美 | 久久成人a毛片免费观看网站 | 天天5g天天看 | 精品乱码一区二区三四区视频 | h视频在线免费观看 | 久久国产视频精品 | 神马午夜在线观看 | caopor在线| 国产5区| 国产欧美一区二区三区视频 | 91精品国产99久久久久久 | 亚洲欧美综合久久 | 国产精品亚洲二区 |