真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

SpringCloud實現(xiàn)提供API給客戶端的方法詳解-創(chuàng)新互聯(lián)

前言

公司主營業(yè)務:成都網(wǎng)站設計、網(wǎng)站建設、移動網(wǎng)站開發(fā)等業(yè)務。幫助企業(yè)客戶真正實現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競爭能力。創(chuàng)新互聯(lián)是一支青春激揚、勤奮敬業(yè)、活力青春激揚、勤奮敬業(yè)、活力澎湃、和諧高效的團隊。公司秉承以“開放、自由、嚴謹、自律”為核心的企業(yè)文化,感謝他們對我們的高要求,感謝他們從不同領域給我們帶來的挑戰(zhàn),讓我們激情的團隊有機會用頭腦與智慧不斷的給客戶帶來驚喜。創(chuàng)新互聯(lián)推出青島免費做網(wǎng)站回饋大家。

現(xiàn)在越來越多的公司開始擁抱Spring Cloud了,Spring Boot做為下一代 web 框架,Spring Cloud 作為最新最火的微服務的翹楚,你還有什么理由拒絕。很多Java方向的同學也開始積極的學習Spring Cloud,其實這邊還有一個問題就是說:雖然大家學了Eureka,Ribbon,Hystrix,Zuul,F(xiàn)eign等等,但是要運用到實際的項目中去還是有些難度的。

微服務難就難在服務的拆分上,框架只是工具,很多人都會用,服務拆分,服務之間的關系這些都是在拆分時候需要考慮的事情。

今天就有一位同學給我發(fā)郵件,咨詢我下面2個問題:


下面以我自己的經(jīng)驗來做一些解答,僅供參考:

關于第一個問題中的API是各個微服務下的Controller?

我們所說的API其實就是一個接口,大部分都是用Spring MVC方式去開發(fā)的,也就是Controller中的一個加了注解的方法,注解就是我們常用的那幾個:

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

關于第一個問題中的是否需要統(tǒng)一的一個工程,在里面封裝其他微服務的controller?

這種其實也沒有固定的模式,大部分是直接通過API網(wǎng)關轉(zhuǎn)發(fā)到你的業(yè)務服務上

以猿天地這樣的博客網(wǎng)站的業(yè)務類舉例:

有一個業(yè)務功能,當我查看具體的博客文章的時候,需要返回的信息如下:

  • 博文標題
  • 發(fā)布時間
  • 作者
  • 標簽
  • 閱讀數(shù)量
  • 評論信息
  • 作者信息(昵稱,介紹)

這個時候我們這個查看文章的接口其實就涉及到了3部分的數(shù)據(jù),文章本身的信息,評論信息,作者的信息

就是有3個服務,用戶服務,博客服務,評論服務

那么問題來了,涉及到多個服務之前的交互,其實跟上面那位同學問我的是一樣的問題,是否需要統(tǒng)一工程,組裝其他服務?是否可以相互調(diào)用?

這種的話我推薦2種實現(xiàn)方式:

一. API網(wǎng)關直接轉(zhuǎn)發(fā)到博客服務中

我們這個API就是一個獲取博文信息的接口,主體肯定是博客服務,在博客服務中有一個博文信息的接口,在接口中去調(diào)用用戶服務提供的用戶信息接口,還要去調(diào)用評論服務中博文的評論信息,下面看偽代碼:

@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 組裝所有信息返回。 
}

標題名稱:SpringCloud實現(xiàn)提供API給客戶端的方法詳解-創(chuàng)新互聯(lián)
網(wǎng)站路徑:http://weahome.cn/article/dijshg.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部