首页 > 解决方案 > 使用 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"
        }
    ]
}

这是表达这个要求的合理方式还是有更正确的方式来做到这一点?

标签: restjsonpath

解决方案


如果请求中缺少某些强制性信息,则这是错误情况,在这种情况下,最好提供 400 错误 HTTP 代码和错误响应正文。所以像这样

HTTP Error Code: 400
Error json body:
{
    "errorCode": "Validation",
    "message": "Driving license is required"
}

推荐阅读