问题概述
路由方面,首先是从 Api 中的 client 创建出问题
再到了 404 又到了 500,最后又是 404 ,记录一下过程问题。
一. Client 创建问题
这个问题的错误在于,定义了 @FeignClient 参数后,对于方法参数的要求变细了
Post 和 Get 方法都需要指定的参数注解
Post 方法参数必须只有一个 @RequestBody
即,你的多个参数必须封装到一个实体中
我说别人的项目怎么一堆 Dto
个人偷了个懒,将数个 Dto 给合并了,因为是练手项目嘛
下面展示一个 Demo
@PostMapping(path = "/comment/find_by_entity")
List<Comment> findCommentsByEntity(@RequestBody FindComments find);
另,Get 的话可以有多个参数,但每个参数前必须配置 @RequestParam
二. 404,500 问题
问题的点其实同样,是路由的问题,只不过是依次暴露出来
这里对路由的设置进行总结。
首先,你要配置路由端口,因为我没用 yml,所以配置在 application.properties 中
server.port=8082
然后,你要配置 client 中的 @FeignClient 注解
包含后续路径和能得到 client 的 url
@FeignClient(name = "post-service", path = "/v1/post", url = "http://localhost:8082")
方法上的 Mapping 就不提了,自己注意
最后一点,你的Controller 层除了必要的路由处理外
还有将@Controller 改成 @RestController