java - 在 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 设计还是有更好的选择。
解决方案
您可以创建一个类来将反馈请求与Map
字段映射inputModel
,
class FeedbackRequest{
String feedType;
Map<String, String> inputModel;
//getters setters
}
推荐阅读
- javascript - discord.js 用户特定的雪花 id 命令
- wso2 - 使用 wso2 apictl 进行 API 迁移
- django - python manage.py collectstatic - 复制了 0 个静态文件
- regex - 带有 Validators.pattern 的正则表达式仅用于整数
- function - 当任何事情都可以通过 POST 以 REST API 调用中最安全的通信方式完成时,所有 GET、PUT、DELETE 有什么用?
- actions-on-google - 测试 Google 智能家居操作
- java - RestTemplate 有时会给出 500 内部服务器错误
- c# - 如何在 MVC 核心 c# 中使用 SaveOnServerPath Rotativa?
- sql - psql 的 \dt PATTERN 是如何工作的?
- javascript - 在javascript中将值乘以连续子字符串的简单方法