制作网站站用的软件,百度免费发布信息网站,龙岩本地论坛,樟木头东莞网站建设场景
现在一个专门负责复习算法的服务#xff0c;筛选出了用户今天需要复习的笔记的ids#xff0c;现在要调用笔记服务根据ids查询的接口。 请问复习服务怎么将ids发到笔记服务#xff0c;笔记服务怎么接收。
思路
发的时候肯定是用字符串#xff0c;接收的时候#xf…场景
现在一个专门负责复习算法的服务筛选出了用户今天需要复习的笔记的ids现在要调用笔记服务根据ids查询的接口。 请问复习服务怎么将ids发到笔记服务笔记服务怎么接收。
思路
发的时候肯定是用字符串接收的时候用List接收到了就接收接收不到就也用字符串收到了再解析成数组。
参考代码
发送
// 提取需要复习的笔记 ID
ListLong reviewNoteIds reviewList.stream().map(NoteAttributeDTO::getNid).toList();
// 转换成逗号分隔的字符串
String idsStr reviewNoteIds.stream().map(String::valueOf).collect(Collectors.joining(,));feign:
// 根据ids查询笔记
GetMapping(/api/note-service/note/findNotesByIds)
ResultDataListNoteDTO findNotesByIds(RequestParam(ids) String ids);接收
用List直接接收
GetMapping(/findNotesByIds)public ResultDataListNote findNotesByIds(RequestParam(ids) ListLong ids) {if (ids null || ids.isEmpty()) {return ResultData.failure(ResultCodeEnum.FAIL, 笔记 ID 不能为空);}ListNote notes noteService.findNotesByIds(ids);return ResultData.success(notes);}先接收成字符串再解析
// 次接口仅用来测试前端怎么给后端传递一个数组GetMapping(/arrayTest)public ResultDataListLong arrayTest(RequestParam(ids) String ids) {// 逗号分隔解析ListLong idList Arrays.stream(ids.split(,)).map(Long::parseLong).collect(Collectors.toList());System.out.println(idList);return ResultData.success(idList);}总结
远程调用要传数组传的一方肯定用字符串。收的一方看能用List接收到就用List不能用List就也用字符串接收。 额别的方法还没试过可能还有更简单的方法不过我感觉这种暂时够用了顶多传的时候再粘几行代码就ok了。