gpt4 book ai didi

java - 如果使用相同的负载发出另一个请求,应使用哪种 RequestBody 类型?

转载 作者:行者123 更新时间:2023-12-01 19:27:51 24 4
gpt4 key购买 nike

背景
我们正在使用来自第三方供应商的 API

问题陈述:
我正在围绕另一个 API 构建一个包装 API。我将从客户端接收到包装器 API 的完全相同的 JSON 负载也将用于向原始 API 发出 HTTP 请求。

目前我正在将反序列化为字符串的 JSON 转换。如果有效负载只是通过包装器 API 传递到原始 API,那么这是正确的方法吗?换句话说,@RequestBody 类型 String 适合我的用例吗?还是我仍然需要反序列化为 Java 对象?

包装器用例
如果多个团队使用第三方供应商的 API,那么如果我们要更换供应商,所有团队都必须做出更改。如果我们创建一个包装器,则只有一个团队需要进行更改。此包装器中没有任何处理。

Controller 代码:

@RestController
@RequestMapping(value = FolderController.PATH, produces = MediaType.APPLICATION_JSON_VALUE)
public class PersonController(){
static final String PATH = "/person";
private final PersonService personService;

@Autowired
public PersonController(PersonService personService){
this.personService = personService
}

@PostMapping
@ResponseBody
public String createPerson(@RequestBody String requestBody){
return personService.createPerson(requestBody);
}

最佳答案

是否需要反序列化取决于您的包装器需要进行哪些处理。如果您只是想进一步传递请求而不更改它,那么这应该可行。

但是,如果您只需要代理请求,请考虑使用 Smiley's HTTP Proxy Servlet为了这个任务。或者,如果您要包装 API 以实现安全性,请考虑使用 Spring cloud gateway

关于java - 如果使用相同的负载发出另一个请求,应使用哪种 RequestBody 类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60924626/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com