【问题标题】:How to force 204 rest API to return content?如何强制 204 REST API 返回内容?
【发布时间】:2016-06-14 12:53:48
【问题描述】:

我知道204 表示服务器已理解请求但没有可用的内容。但我认为阻止开发人员返回这样的 json 消息是错误的:
return json_encode(array("mex" => "no content"));

当API在标题中返回204时,我还需要返回一个json。我不想在这种情况下使用200,因为这意味着返回了一个内容。

404 也不合适,因为这意味着资源不会退出。
有什么想法吗?
这是我的代码:

http_response_code(204);
return json_encode(array("mex" => "no content"));

【问题讨论】:

  • 你的json字符串是内容,所以你应该使用200。如果你想使用204,那么你不能返回任何类型的内容。
  • @vascowhite 这个我知道,但我想通过204 告诉谁使用 API 没有内容。
  • 204就是这个意思,你不用多解释了。

标签: php json api rest


【解决方案1】:

你不能。 The HTTP specification 声明:

204 响应不得包含消息正文,因此始终以标头字段后的第一个空行终止。

尝试在 204 响应中包含内容会导致许多 HTTP 客户端出现故障。如果您想在响应中包含一条消息,则需要使用 204 以外的响应代码。

【讨论】:

  • 这取决于你。如果您想挑剔,请阅读规范以查看最合适的内容;如果不这样做,请使用 200。
  • 您对此有何看法?
  • 我对你的API一无所知,所以我对它没有意见。
  • 不,我的意思是,如果您需要返回 json 和空内容,您将使用哪个代码?
  • 这是一个矛盾。如果您返回 JSON 数据,则不会返回空响​​应。
猜你喜欢
  • 1970-01-01
  • 2022-10-18
  • 2020-02-08
  • 2022-10-18
  • 2014-12-09
  • 1970-01-01
  • 1970-01-01
  • 2015-10-18
  • 2013-02-13
相关资源
最近更新 更多