java - 如何使用 WebClient 访问 REST 子资源并在 Rest Client 中使用它们
问题描述
我正在学习如何使用休息端点。我在访问子资源并在我自己的休息响应中使用它们时遇到问题。
例子。我收到了来自第 3 方休息服务的回复:
{“名称”:“卢克天行者”,“身高”:“172”,“质量”:“77”,“头发颜色”:“金发”,“皮肤颜色”:“公平”,“眼睛颜色”:“蓝色”, “birth_year”:“19BBY”、“性别”:“男性”、“电影”:[“https://swapi.dev/api/films/2/”、“https://swapi.dev/api/films /6/", ]........
我的客户端应用程序应该提供:
{“名称”:“卢克天行者”,“身高”:“172”,“质量”:“77”,“头发颜色”:“金发”,“皮肤颜色”:“公平”,“眼睛颜色”:“蓝色”, "birth_year": "19BBY", "gender": "male", "films": [ {""title": "The Empire Strikes Back", "episode_id": 5,"}, {""title": "绝地归来", "episode_id": 6, "}, ],
所以我的回复应该包含来自原始回复中链接的数据。怎么做 ?如何使用 WebClient 访问此子资源并通过将链接转换为来自该链接的数据来在我的响应中使用它们?或者也许我应该在模型类中使用某种 json 注释?到目前为止,我的 springboot 应用程序复制了带有链接的原始 json。感谢帮助。
@GetMapping("/people/{id}") public Person getPost(@PathVariable("id") Integer id) {
return webClientBuilder.build() .get() .uri(ALL_PEOPLE_URL + id) .retrieve() .bodyToMono(Person.class) .block(); } @JsonIgnoreProperties(ignoreUnknown = true) @NoArgsConstructor @ToString @Getter @Setter public class Person { private String name; private String birth_year; private String eye_color; private String gender; private String hair_color; private String height; private String mass; private String skin_color; private String homeworld; private String[] films; private String[] species; private String[] starships; private String[] vehicles; private String url; private String created; private String edited; }
解决方案
推荐阅读
- python - Discord Bot-AttributeError:“str”对象没有属性“loop”
- elixir - 在 Elixir 中构建枚举有哪些好的做法?
- sql - 在 impala 中找到连续值
- google-cloud-platform - 我可以使用什么地方 appcfg.py 下载/更新谷歌云?
- git-bash - Git Bash 中的 .cmd 有什么用?
- laravel-5 - 如何解决 Freescout 中的附件/存储问题
- bash - 检查睡眠后删除的文件大小
- rundeck - 在使用 rundeck-cli 之前是否需要安装 rundeck 软件
- php - 为什么我的 Docker 应用程序不会显示在我的本地服务器上?
- swiftui - swiftUI 中的 App Store 集合视图布局