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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

Spring Cloud【Finchley】-07Feign构造多参数GET/POST请求

發布時間:2025/3/21 javascript 17 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Spring Cloud【Finchley】-07Feign构造多参数GET/POST请求 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

  • 概述
  • 調用順序
  • Feign構造多參數GET請求
    • url參數和方法參數一一對應
    • map接收
  • Feign構造多參數POST請求
  • 源碼

概述

Spring Cloud-06服務消費者整合Feign中將消費者和Feign整合在了一起,示例中Feign客戶端接口中的參數只有1個,如下

實際開發中,多個請求非常常見,如果請求參數有多個呢? 我們使用Feign該如何調用請求呢?


調用順序

當瀏覽器或者外部其他請求請求到MovieController,MovieController需要調用UserController服務提供者提供的服務,MovieController會通過接口UserFeignClient來實現調用。 在UserFeignClient接口方法里,通過映射UserController的REST API實現調用對端服務。

服務端對外提供的rest風格的請求如下


Feign構造多參數GET請求

我們知道Spring Cloud為Feign添加了Spring MVC的注解支持,那按照Spring MVC那種寫法試試?

MovieController中定義一個接受外部請求的方法,映射/movie/getA的請求

@RestController @Slf4j public class MovieController {@Autowiredprivate UserFeignClient userClient;@GetMapping("/movie/getA")public User findUser(User user) {log.info("get進入服務消費者 MovieController.findUser");return userClient.finUser(user);} }

在Feign接口中,定義finUser方法,和服務端UserController暴露的url一致

@FeignClient("microservice-provider-user") public interface UserFeignClient {@RequestMapping(method = RequestMethod.GET, value = "/get")public User finUser(User user); }

可以看到 value = “/get” ,和服務提供者的請求url保持一致,這樣就能可以調用到該服務。

那試下吧

  • 啟動microservice-discovery-eureka微服務,Eureka Server
  • 啟動micorservice-provider-user,服務提供者
  • 啟動micorservice-consumer-movie-fegin,服務消費者
  • 訪問 http://localhost:7901/movie/getA?username=%E5%B0%8F%E5%B7%A5%E5%8C%A0&age=10

    傳遞了2個參數,都是User類的兩個屬性,按照Spring MVC的邏輯,肯定是可以自動轉換的,但這里報錯了

    盡管我們指定了GET方法,Feign依然會使用POST方法發送請求。

    那該如何寫呢?

    url參數和方法參數一一對應

    URL有幾個參數,Feign接口中的方法就有幾個參數。使用@RequestParam注解指定請求的參數是什么

    MovieController層

    Feign接口

    /*** * @param username* @param age* @return* @desc get的url中有幾個參數,Feign接口的方法中就定義幾個參數,使用@RequestParam注解指定請求的參數是什么* 必須要加上@RequestParam注解,否則啟動報錯。* */@RequestMapping(method = RequestMethod.GET, value = "/get")public User finUser(@RequestParam("username") String username ,@RequestParam("age") Integer age);

    服務提供者保持不變。

  • 啟動microservice-discovery-eureka微服務,Eureka Server
  • 啟動micorservice-provider-user,服務提供者
  • 啟動micorservice-consumer-movie-fegin,服務消費者
  • 訪問 http://localhost:7901/movie/getB?username=%E5%B0%8F%E5%B7%A5%E5%8C%A0&age=10


    map接收

    多參數的URL也可使用Map來構建。當目標URL參數非常多的時候,可使用這種方式簡化Feign接口的編寫。

    MovieController增加個新的方法便于測試

    @GetMapping("/movie/getC")public User findUser3(User user) {log.info("get2進入服務消費者 MovieController.findUser3");Map<String, Object> map = new HashMap<String, Object>() {{put("username",user.getUsername());put("age",user.getAge());}};return userClient.finUser(map);}

    Feign接口

    /*** * @param map* @return* @desc 使用map來接收get請求的多個參數,@RequestParam不可少*/@RequestMapping(method = RequestMethod.GET, value = "/get")public User finUser(@RequestParam Map<String, Object> map);

    服務提供者保持不變。

  • 啟動microservice-discovery-eureka微服務,Eureka Server
  • 啟動micorservice-provider-user,服務提供者
  • 啟動micorservice-consumer-movie-fegin,服務消費者
  • http://localhost:7901/movie/getC?username=%E5%B0%8F%E5%B7%A5%E5%8C%A0xxxx&age=9999


    Feign構造多參數POST請求

    如何使用Feign構造包含多個參數的POST請求 ?

    假設服務提供者的Controller是這樣編寫的:

    @RestController public class UserController {@PostMapping("/post")public User post(@RequestBody User user) {...} }

    如何使用Feign去請求呢?

    @FeignClient(name = "microservice-provider-user") public interface UserFeignClient {@RequestMapping(value = "/post", method = RequestMethod.POST)public User post(@RequestBody User user); }

    用POSTMAN模擬下即可 ,注意Body是JSON格式

    實際工作中的使用


    源碼

    https://github.com/yangshangwei/SpringCloudMaster

    總結

    以上是生活随笔為你收集整理的Spring Cloud【Finchley】-07Feign构造多参数GET/POST请求的全部內容,希望文章能夠幫你解決所遇到的問題。

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

    主站蜘蛛池模板: 国产五十路 | www.成人网.com | 日韩簧片| 三上悠亚在线一区 | 久久久1 | 99re6在线观看| 男女一进一出视频 | 依依av| 日本视频二区 | 中文字幕亚洲视频 | 国产丝袜第一页 | 国产黄色视屏 | 夫の上司に犯波多野结衣853 | 日韩淫片 | 九七影院在线观看免费观看电视 | 一级在线播放 | 少妇搡bbbb搡bbb搡澳门 | 久久爱一区二区 | 禁止18在线观看 | 亚洲免费黄色网址 | 欧美三级在线视频 | 亚洲人人人| 99热精品免费 | 色视频网| 男人的天堂99 | 中文字幕一区二区三区免费视频 | 国产精品久久久久久久久免费 | 日韩电影一区二区三区 | 国产成人无码精品久久久久久 | 欧美无砖专区免费 | 日本欧美日韩 | 四虎最新网址在线观看 | 天天干天天舔 | 日韩欧美亚洲精品 | 超碰97免费在线 | 香蕉视频2020 | 欧美 日韩 中文 | 黄页视频在线免费观看 | 成年人免费在线观看 | 亚洲影院av | 欧美一区三区二区在线观看 | 欧美日韩看片 | 美女的隐私免费看 | 亚洲伊人成人网 | 在线看免费毛片 | 亚洲一区二区三区四区在线观看 | 9人人澡人人爽人人精品 | 成人在线激情 | 欧美一级黄色片视频 | 激情伊人 | 国产免费播放 | 国产97色在线 | 欧美卡一卡二卡三 | 欧美成欧美va | 韩国伦理片在线观看 | 欧美精品免费视频 | 激情网av| 91精品啪在线观看国产 | 国产精品综合网 | 动漫av网站 | 特级毛片在线播放 | 国产卡一卡二 | 亚洲一级电影 | 天天干,天天操,天天射 | 激情91| 在线观看毛片网站 | 亚洲国产在 | 少妇日b | 国产日韩一区二区在线观看 | 日韩一级| 中文字幕第一区综合 | 日本不卡视频 | 国产三级在线免费观看 | 久久性爱视频网站 | 国产精品久久久久免费 | 自拍偷拍一区二区三区 | 国内一区二区视频 | 日日狠狠久久 | 久草视频在线免费看 | 久久久精品电影 | 在线播放一级片 | 欧美韩一区二区 | 在线观看日本一区二区 | 国产极品美女高潮无套在线观看 | 国产人妻精品一区二区三区 | 打屁股无遮挡网站 | 韩国国产在线 | 国产精品无码一本二本三本色 | 男人亚洲天堂 | 亚洲欧美一区二区三区不卡 | 乳孔很大能进去的av番号 | 日美女网站 | 97久久久久久 | 色av综合网 | 日韩av黄色片 | 日本不卡一区在线观看 | 亚洲天堂精品一区 | 国产黄色a | 中文在线免费 |