springBoot服务之间的转发
【150字摘要】 在微服务架构中,针对跨服务接口调用场景,可以通过请求转发实现业务逻辑解耦。示例展示了服务A作为转发层,通过@PostMapping接收前端请求后,使用RestTemplate将请求转发至实际处理业务的服务B(需在服务B的shiro配置中添加匿名访问路径/c/**)。服务B处理完成后,结果经服务A原路返回前端。这种方案避免了服务A重复开发已有功能,同时保持接口权限管控。关键实现包括
·
场景:前端请求的服务里没有关于该业务相关的代码。另一台服务有,这时候转发过去再处理明显方便多了。设前端请求的服务为A,实际处理的服务为B
在服务A,我们这样写
@PostMapping("delHlpxglHlcfjl")
public Object delHlpxglHlcfjl(@RequestBody Map<String, Object> param) {
try {
String url = baseUrl + "服务B实际接口名称";
log.info("转发请求到API服务: URL={}, 参数={}", url, param);
Object result = restTemplate.postForObject(url, param, Object.class);
log.info("API服务响应结果: {}", result);
return result;
} catch (Exception e) {
log.error("转发请求失败: baseUrl={}, 错误信息={}", baseUrl, e.getMessage(), e);
throw e;
}
}
比如,服务A前端请求路径是 127.0.0.1:8080//a/b, 服务B接口名称是127.0.0.1:8081//c/d
接着在服务B服务的resources的文件夹下的properties的tai3.shiro.anon_url配置里加上服务B目标接口名称(就写 “/c/**”)服务B接口正常写,谁调用就会返回给谁
火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。
更多推荐
所有评论(0)