我正在为基于PHP后端的移动APP制作API。我有一些情况,我返回一个数组列表,如果没有结果,我返回一条消息
找到结果:
{"status":"success",
"data":[{"users_details":[{"user_id":1,"parent_id":2}]}],
"token":"success"}
在哪里找不到结果:
{"status":"error","data":"no user found","token":"success"}
这是一个好方法,如果没有它应该是什么?
答案 0 :(得分:2)
我更喜欢使用http响应代码,因此对于未找到的数据,您可以返回204,当您找到匹配返回200和用户列表时
答案 1 :(得分:0)
回复消息是一个好主意,没有找到用户数据,但它是完美的,如果与响应一起,将返回正确的响应代码。在这种情况下,它将是404 - 未找到。有关详细信息,请参阅https://en.wikipedia.org/wiki/List_of_HTTP_status_codes
答案 2 :(得分:0)
这取决于你如何处理它,我会简单地这样做。
{"status":"error","msg":"no user found","token":"success"}
因为您不需要对用户数据和错误消息感到困惑。
考虑状态是否为错误,那么它应该在 msg 键中有详细的错误消息
因此您可以在进入实际用户数据解析功能之前消除响应。像
if($response['status'] === 'error')
return "Error Message: " . $status['msg'];
答案 3 :(得分:0)
我个人支持空阵。这是正常的情况,当API搜索没有返回结果时(空数组自然没有结果答案)。这对我来说还不错。
请求可能是格式错误或者数据库可能存在问题,返回状态确实如此:错误。
更多的说,当我们在带有数据和第二个字符串的第一个案例数组中返回时,无论如何都是不好的方法,因为我们必须处理不同类型的数据,这正如我所说的反模式。类型应始终相同。
我们首先检查状态是否正常或错误(没有连接,连接错误,请求错误等),然后检查数据(空数组=无结果)或检查错误消息
{"status": "error", "message": "connection error"}
{"status": "success", "data": []}
{"status": "error", "data": ["First result", "Second result"]}
这并不意味着我们无法将用户重定向到404页面。如果我们得到这样的API结果,当然。但是对于API请求,当空结果是正常结果时,它不应该被视为错误,或者我们将真正的错误与逻辑混合,这显然是坏的。