使用Feign构造多参数请求——POST请求包含多个参数
程序员文章站
2022-07-12 23:22:22
...
一 修改电影微服务控制器
package com.itmuch.cloud.study.user.controller;
import java.util.Map;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RestController;
import com.google.common.collect.Maps;
import com.itmuch.cloud.study.user.entity.User;
import com.itmuch.cloud.study.user.feign.UserFeignClient;
@RestController
public class MovieController {
@Autowired
private UserFeignClient userFeignClient;
@GetMapping("/user/{id}")
public User findById(@PathVariable Long id) {
return this.userFeignClient.findById(id);
}
/**
* 测试URL:http://localhost:8010/user/post?id=1&username=张三
* @param user user
* @return 用户信息
*/
@GetMapping("/user/post")
public User post(User user) {
return this.userFeignClient.post(user);
}
}
二 修改UserFeignClient接口
package com.itmuch.cloud.study.user.feign;
import com.itmuch.cloud.study.user.entity.User;
import org.springframework.cloud.netflix.feign.FeignClient;
import org.springframework.web.bind.annotation.*;
import java.util.Map;
@FeignClient(name = "microservice-provider-user")
public interface UserFeignClient {
@RequestMapping(value = "/{id}", method = RequestMethod.GET)
public User findById(@PathVariable("id") Long id);
@RequestMapping(value = "/post", method = RequestMethod.POST)
public User post(@RequestBody User user);
}
三 修改用户微服务控制器
package com.itmuch.cloud.study.controller;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;
import com.itmuch.cloud.study.entity.User;
import com.itmuch.cloud.study.repository.UserRepository;
@RestController
public class UserController {
@Autowired
private UserRepository userRepository;
@GetMapping("/{id}")
public User findById(@PathVariable Long id) {
User findOne = this.userRepository.findOne(id);
return findOne;
}
@PostMapping("/post")
public User post(@RequestBody User user) {
return user;
}
}
四 测试
1 启动Eureka
2 启动用户微服务
3 启动电影微服务
4 访问http://localhost:8010/user/post?id=1&username=张三