iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >Spring Cloud实现提供API给客户端的方法详解
  • 732
分享到

Spring Cloud实现提供API给客户端的方法详解

2023-05-30 16:05:43 732人浏览 泡泡鱼
摘要

前言现在越来越多的公司开始拥抱spring cloud了,Spring Boot做为下一代 WEB 框架,spring Cloud 作为最新最火的微服务的翘楚,你还有什么理由拒绝。很多Java方向的同学也开始积极的学习Spring Clou

前言

现在越来越多的公司开始拥抱spring cloud了,Spring Boot做为下一代 WEB 框架spring Cloud 作为最新最火的微服务的翘楚,你还有什么理由拒绝。很多Java方向的同学也开始积极的学习Spring Cloud,其实这边还有一个问题就是说:虽然大家学了Eureka,Ribbon,Hystrix,Zuul,Feign等等,但是要运用到实际的项目中去还是有些难度的。

微服务难就难在服务的拆分上,框架只是工具,很多人都会用,服务拆分,服务之间的关系这些都是在拆分时候需要考虑的事情。

今天就有一位同学给我发邮件,咨询我下面2个问题:

Spring Cloud实现提供API给客户端的方法详解

下面以我自己的经验来做一些解答,仅供参考:

关于第一个问题中的API是各个微服务下的Controller?

我们所说的api其实就是一个接口,大部分都是用Spring mvc方式去开发的,也就是Controller中的一个加了注解的方法,注解就是我们常用的那几个:

  • @RequestMapping
  • @GetMapping
  • @PostMapping
  • @PutMapping
  • @DeleteMapping

关于第一个问题中的是否需要统一的一个工程,在里面封装其他微服务的controller?

这种其实也没有固定的模式,大部分是直接通过API网关转发到你的业务服务上

以猿天地这样的博客网站的业务类举例:

有一个业务功能,当我查看具体的博客文章的时候,需要返回的信息如下:

  • 博文标题
  • 发布时间
  • 作者
  • 标签
  • 阅读数量
  • 评论信息
  • 作者信息(昵称,介绍)

这个时候我们这个查看文章的接口其实就涉及到了3部分的数据,文章本身的信息,评论信息,作者的信息

就是有3个服务,用户服务,博客服务,评论服务

那么问题来了,涉及到多个服务之前的交互,其实跟上面那位同学问我的是一样的问题,是否需要统一工程,组装其他服务?是否可以相互调用?

这种的话我推荐2种实现方式:

一. API网关直接转发到博客服务中

我们这个API就是一个获取博文信息的接口,主体肯定是博客服务,在博客服务中有一个博文信息的接口,在接口中去调用用户服务提供的用户信息接口,还要去调用评论服务中博文的评论信息,下面看伪代码:

@GetMapping("/blog/detail/{id}")public BlogInfo blogInfo(@PathVariable("id") Long id) { // 获取博客信息 Blog blog = blogService.getById(id); // 获取用户信息 UserInfo userInfo = userFeignClient.getUserInfo(blog.getUserId()); // 获取评论信息 CommentInfo commentInfo = commentFeignClient.getCommentInfo(id);  return 组装所有信息返回。 }

--结束END--

本文标题: Spring Cloud实现提供API给客户端的方法详解

本文链接: https://www.lsjlt.com/news/219844.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作