REST API 响应的正确方法是什么?

A. *_*iev 4 python django rest django-rest-framework

REST API 响应结构和布局的最佳实践是什么?

刮伤的例子:

成功回复

{
    "status": "success",
    "data": # some data here
}
Run Code Online (Sandbox Code Playgroud)

失败响应

{
    "status": "fail",
    "data": {
        "code": # some error code,
        "message": # some error explaining message
    }
}
Run Code Online (Sandbox Code Playgroud)

Mau*_*ldi 9

有很多方法可以设计您的 API 响应。它以您的架构、技术和其他方面为条件。

根据你的例子,我会这样回应

请求成功:

{
    "status": "success",
    "data": {
            /* Application-specific data would go here. */
    },
    "message": null /* Or optional success message */
}
Run Code Online (Sandbox Code Playgroud)

失败的请求:

{
    "status": "error",
    "code": 404,
    "data": null, /* or optional error payload */
    "message": "Error xyz has occurred"
}
Run Code Online (Sandbox Code Playgroud)

有关此主题的更多信息,请查看此链接

标准的 JSON API 响应格式?

设计实用 RESTful API 的最佳实践

REST API 错误代码 101

  • 我从来不明白这一点,也许有人可以给我一个理由:为什么要返回“状态”?客户端可以根据响应的状态码判断调用是否成功。这是非常不言自明的,如果状态代码是 200 一切正常,或者 401 需要身份验证(您甚至可以在发生错误时指定自定义消息)。为什么我要在正文中重复响应状态代码? (2认同)