【发布时间】:2015-07-11 04:50:02
【问题描述】:
编写一个 RESTful API,我偶然发现了一个问题。
如果客户端以 API不支持的格式 POST/PUT 一些数据,服务器应该如何提醒客户端?
例如: 客户端以 QueryString 格式发布了一些数据
fieldA=foo&fieldB=bar
但是服务器只接受 JSON,所以数据应该像这样 POST:
{"fieldA": "foo", "fieldB": "bar"}
目前,我正在发送 415 状态码(PHP 代码):
header("HTTP/1.1 415 Unsupported Media Type", true, 415);
但这并没有告诉客户端 API 接受/使用哪种媒体类型。
此外,这是否足够或 正确的方法 使请求失败?
问题是,在 RESTful API 中,告诉客户端发送到服务器的数据是不受支持的媒体类型的最佳方式是什么,以及服务器如何告诉客户端支持/预期什么?
PS:我正在用 PHP 编写这个应用程序,但我对行为感兴趣,而不是实际的实现。
由于逻辑在任何地方都是相同的,因此欢迎使用任何语言进行回复。
【问题讨论】:
标签: rest http-headers