如果后端db调用没有产生任何结果,则为Http错误代码

时间:2017-07-14 20:33:52

标签: api aws-lambda aws-api-gateway

我正在AWS API网关中构建一个API,它有一个get方法(id为查询参数),调用lambda函数,然后从dynamodb获取数据。

如果在dynamodb中不存在传递的id,则dynamodb返回一个空的json。我可以检查json的长度来确定结果集是空的。我可以返回一条消息,表明找不到该ID。

现在Get,lambda函数和dynamodb GetItem都成功了。只是没有返回数据。

Get方法响应代码应该是200还是其他4xx代码,以表明输入不正确?

1 个答案:

答案 0 :(得分:1)

有一些解释空间,特别是当人们有时设计他们的API以使用http://example.com/find/someID等URL路径查询时。在这种情况下,someID可以被视为服务器上未找到的资源,返回404是有意义的。在您的情况下,假设您的网址看起来像http://example.com/find?query=someID,我认为404不合适。很难区分合法找不到正确资源的资源/find,但是查询没有结果。在这种情况下返回200对我来说更有意义,因为请求实际上并不是错误。

在不知道如何使用API​​的情况下,很难确定,但我怀疑如果您区分错误和零结果,用户会更容易。想象一下,例如,如果你搜索了一些它找不到的东西,可以使用像Google这样的东西并获得404。

最重要的是,或者当然,要记录好并保持一致。