HTTP 状态代码。空参数的最佳状态代码是什么?

Saš*_*aba 1 api-design http django-rest-framework

我正在 Django Rest Framework 中编写一个 API。

我有一个密码重置端点,它接受一个“电子邮件”参数。如果标头中有一个键“email”,但该值是空字符串怎么办?

key: 'email'    
value: ''
Run Code Online (Sandbox Code Playgroud)

我应该返回什么状态代码?400,或者204?

编辑:我忘了提及这不应该是验证失败。该端点不需要授权。这仅用于发送密码重置电子邮件。

Mat*_*tko 5

HTTP状态只是标准,您可以调整它们以适合您。204 no content 通常在没有返回响应正文时使用,因此您希望能够从服务器响应“没有电子邮件提供任何错误信息”。在 DRF 中,当实体在服务器上被删除时,成功 DELETE 请求后返回 204(默认),因此没有剩余内容。

在你的情况下,我会选择 400。http://www.restapitutorial.com/httpstatuscodes.html特别提到“丢失数据”作为错误 400 错误请求使用的示例,这可能正是你的情况。