rest - 使用 REST API 收集数据的最佳实践
问题描述
考虑我有一个使用如下资源的数据收集 API,
{
user: {
id:"c5667fb4-2348-4ccc-afc4-2309077a09ad"
documents :[
{
type:"PASSPORT",
value:"1234"
issue_date:"11/11/2011"
},
{
type:"DRIVING_LICENSE",
value:"5678"
issue_date:"11/11/2001"
}
]
}
}
对于客户感兴趣的给定用户,我需要能够通过我的 API 进行评估和响应,并要求提供任何丢失的文档 - 例如,用户可能在创建时只提供了 PASSPORT,所以我现在需要只要求 DRIVING_LICENSE。
为此,我正在考虑一个控制器端点(如“评估”),以便能够发送指示用户丢失哪些数据的响应。
客户端可以调用POST:/evaluate/c5667fb4-2348-4ccc-afc4-2309077a09ad 现在说这个用户缺少 DRIVING_LICENSE 响应应该指出缺少的内容,如下所示 - 我正在使用 json 路径来定义我正在寻找的内容
{
required_data:[
{
path:"user.documents[?(@.type=="DRIVING_LICENSE")].type"
}
]
}
这是表达这个要求的合理方式还是有更正确的方式来做到这一点?
解决方案
如果请求中缺少某些强制性信息,则这是错误情况,在这种情况下,最好提供 400 错误 HTTP 代码和错误响应正文。所以像这样
HTTP Error Code: 400
Error json body:
{
"errorCode": "Validation",
"message": "Driving license is required"
}
推荐阅读
- asp.net-mvc - 模型绑定嵌套对象
- css - 为什么我们使用 translate:transform with left 和 right 来使元素居中?
- ruby-on-rails - 评估具有可插值的字符串化 json
- python - 通过给定的 timedelta 在数据框列中查找时间戳
- java - 无法在 tinyMCE 中从服务器接收的 HTML 文件中显示图像
- javascript - 使用 Javascript 将英文日期转换为阿拉伯文本
- prestashop - 产品组合的 Prestashop 问题
- wordpress - 如何设置每个用户的站点范围的下载限制,每月重置。?
- java - 我的应用程序只收到我发送的第一条消息,然后停止显示其他节点
- javascript - 如何同时设置编辑器的高度和填充?