首页 > 解决方案 > 在 REST API 请求有效负载中提供 POJO 对象作为序列化字符串

问题描述

我有一个 REST API uploadFeed,它根据 feedType 上传用户提要(字符串值作为请求正文的一部分输入)。不同的 feedtype 在请求正文中提供了不同的 pojo 模型。

例如,如果 feedType 是“TYPE1”,那么 API 的请求正文应该如下所示:

{
 "feedType":"TYPE1",
 "inputModel": {
    "a": "somevalue"
    "b" : "somevalue",
    "c" : "somevalue",
  }
}

如果 feedType 是“TYPE2”,那么 API 的请求正文应该如下所示:

{
 "feedType":"TYPE2",
  "inputModel": {
    "x": "somevalue"
    "y" : "somevalue",
    "z" : "somevalue",
  }
}

现在我想避免为两种 feedType 提供不同的 REST API 端点。我正在考虑提供 inputModel 的序列化对象作为输入,然后根据 feedType 在后端反序列化。对于.eg

{
 "feedType":"TYPE2",
  "inputModel": "<<serialized object>>"
}

这是一个好的 REST API 设计还是有更好的选择。

标签: javaapirest

解决方案


您可以创建一个类来将反馈请求与Map字段映射inputModel

class FeedbackRequest{
   String feedType;
   Map<String, String> inputModel;
   //getters setters
}

推荐阅读