我有一个 API (A) 接收请求并将这些请求发送到另一个 API (B)。但是,在 API (A) 向 API (B) 发送请求之前,它需要按照 API (B) 接受请求的方式来格式化它们。API (A) 中接收到的一些数据将不会被使用或映射到发送到 API (B) 的请求,API (B) 中的一些数据字段也将是空的。我想将 API (A) 中的字段映射到 (B) 接受的格式。这是 API (A) 接收请求的格式:{"customer" : { "name" : "Bob", "phone" : "000-123-4567", "email" : "bob@email.com", "zip" : "12345" }}这是 API (B) 接收请求的格式。这是我想在将 API (A) 收到的所有请求发送到 API (B) 之前将其转换为的格式。这是一个例子:{"transaction" : { "name" : "Bob", "phone" : "000-123-4567", "address" : "", "city" : "" }}所以匹配的键将被映射,不匹配的键将保持为空。我不能改变 API (A) 接收请求的方式并将其匹配到与 API (B) 请求相同的格式的原因是因为我将它与多个 API 集成。我不确定是否有一种简单的方法可以做到这一点。到目前为止,我已经考虑过创建一个方法,该方法将接收一个 json 对象(这将是 A 收到的请求)和一个 RequestB 对象(我将创建并表示发送到 API B 的请求)比较匹配的键并设置值,然后返回格式正确的请求,以便将其发送到 API (B)。但是,由于 API (A) 将与多个 API 进行通信(要转换/映射到的多种格式),因此这可能不是一个好的解决方案。有任何想法吗?
2 回答

心有法竹
TA贡献1866条经验 获得超5个赞
在@Darshan_Mehta 的答案的附件中,我想推荐MapStruct。映射器类可以通过注释以最小且直观的方式定义:
@Mapper
public interface CustomerMapper {
Transaction toTransaction(Customer input);
}
实际实现是在编译时利用Pluggable Annotation Processing API生成的。
添加回答
举报
0/150
提交
取消